Kodomo

Пользователь

Практикум №3

Различные опции команды ls

Всем доброго времени суток, данная страница посвящена различным опциям команды ls. Эта команда используется в командном интерпретаторе bash (он воспринимает команды и взаимодействует с системой) и показывает содержимое определённой директории. Пользователь может применить эту команду к определённой директории, а также задать опцию/опции команде. В этой практической работе хотелось бы рассмотреть три опции команды ls: -S, -r и -R

Будем идти по намеченному порядку:

Опция -S команды ls

Обычно при использовании команды ls файлы сортируются в алфавитном порядке, однако опция -S позволяет сортировать файлы/директории (размер директории расчитывается как сумма размеров файлов, входящих в эту директорию) по размеру: от самых больших по размеру до самых маленьких

Без использования опции -S содержимое директории будет показываться в алфавитном порядке:

kodomo:~$ ls /tmp/Seminar3                                                                                                                                                                                                       1.txt  cat.txt  chromsizes.tsv  example2.txt  example.txt  files  file.tab  fruits.csv  fruits.txt  new.csv  one.err  one.log  streams.sh  test.txt
kodomo:~$

Однако при использовании опции -S содержимое директории будет сортироваться от самого большого по размеру файла/директории к самому маленькому по размеру файлу/директории:

kodomo:~$ ls -S /tmp/Seminar3                                                                                                                                                                                                  files  chromsizes.tsv  example2.txt  example.txt  1.txt  fruits.csv  fruits.txt  streams.sh  file.tab  test.txt  one.err  one.log  cat.txt  new.csv
kodomo:~$

Проверить то, что содержимое сортируется именно в в порядке их размера, можно при помощи уже изученной нами опции -l. Отправим команду, совместив опции -l и -S:

kodomo:~$ ls -lS /tmp/Seminar3                                                                                                                                                                                                                                                                                                                                                                                                                                   drwxr-xr-x. 2 ilnitsky year-14 4096 Sep 19 12:52 files                                                                                                                                                                                     -rwxr-xr-x. 1 ilnitsky year-14  365 Sep 19 12:52 chromsizes.tsv                                                                                                                                                                            -rwxr-xr-x. 1 ilnitsky year-14  254 Sep 19 12:52 example2.txt                                                                                                                                                                              -rwxr-xr-x. 1 ilnitsky year-14  254 Sep 19 12:52 example.txt                                                                                                                                                                               -rwxr-xr-x. 1 ilnitsky year-14  130 Sep 19 12:52 1.txt                                                                                                                                                                                     -rwxr-xr-x. 1 ilnitsky year-14   83 Sep 19 12:52 fruits.csv                                                                                                                                                                                -rwxr-xr-x. 1 ilnitsky year-14   83 Sep 19 12:52 fruits.txt                                                                                                                                                                                -rwxr-xr-x. 1 ilnitsky year-14   62 Sep 19 12:52 streams.sh                                                                                                                                                                                -rwxr-xr-x. 1 ilnitsky year-14   57 Sep 19 12:52 file.tab                                                                                                                                                                                  -rwxr-xr-x. 1 ilnitsky year-14   30 Sep 19 12:52 test.txt                                                                                                                                                                                  -rwxr-xr-x. 1 ilnitsky year-14   15 Sep 19 12:52 one.err                                                                                                                                                                                   -rwxr-xr-x. 1 ilnitsky year-14   15 Sep 19 12:52 one.log                                                                                                                                                                                   -rwxr-xr-x. 1 ilnitsky year-14   14 Sep 19 12:52 cat.txt                                                                                                                                                                                   -rwxr-xr-x. 1 ilnitsky year-14    0 Sep 19 12:52 new.cs
kodomo:~$

Из приведённого примера становится очевидно то, что файлы/директории сортируются именно в порядке их размера от самых больших к самым маленьким

Опция -r команды ls

Мы поняли как при помощи команды ls сортировать объекты, находящиеся в директории, в прямой последовательности: в алфавитном порядке или в порядке от большего к меньшему. Однако, что делать, если нам нужен обратный порядок объектов директории? Для этого нам пригодится опция -r. Она разворачивает последовательность объектов при её использование. Для ясности приведу пример.

Вот у нас есть последовательность файлов в алфавитном порядке:

kodomo:~$ ls /tmp/Seminar3                                                                                                                                                                                                       1.txt  cat.txt  chromsizes.tsv  example2.txt  example.txt  files  file.tab  fruits.csv  fruits.txt  new.csv  one.err  one.log  streams.sh  test.txt
kodomo:~$

Но мы захотели, чтобы содержимое директории показывалось не в алфавитном, а в обратном порядке. Использовав опцию -r при команде ls мы добьёмся нужных результатов:

kodomo:~$ ls -r /tmp/Seminar3
test.txt  streams.sh  one.log  one.err  new.csv  fruits.txt  fruits.csv  file.tab  files  example.txt  example2.txt  chromsizes.tsv  cat.txt  1.txt
kodomo:~$

Как мы видим порядок объектов стал противоположным.

Аналогично для сортировки по размерам файлов/директорий. Содержимое директории от самых больших по размерам объектов к самым маленьким:

kodomo:~$ ls -S /tmp/Seminar3                                                                                                                                                                                                  files  chromsizes.tsv  example2.txt  example.txt  1.txt  fruits.csv  fruits.txt  streams.sh  file.tab  test.txt  one.err  one.log  cat.txt  new.csv
kodomo:~$

А вот это же самое содержимое, но при использовании опции -r:

kodomo:~$ ls -Sr /tmp/Seminar3                                                                                                                                                                                                   new.csv  cat.txt  one.log  one.err  test.txt  file.tab  streams.sh  fruits.txt  fruits.csv  1.txt  example.txt  example2.txt  chromsizes.tsv  files
kodomo:~$

Содержимое показывается в обратном порядке: от самых маленьких файлов/директорий к самым крупным.

Для больше наглядности совмещу опции -r и -S вместе в опцией -l, которая показывает данные о файле/директории, в том числе и её размер:

kodomo:~$ ls -lSr /tmp/Seminar3
-rwxr-xr-x. 1 ilnitsky year-14    0 Sep 19 12:52 new.csv
-rwxr-xr-x. 1 ilnitsky year-14   14 Sep 19 12:52 cat.txt
-rwxr-xr-x. 1 ilnitsky year-14   15 Sep 19 12:52 one.log
-rwxr-xr-x. 1 ilnitsky year-14   15 Sep 19 12:52 one.err
-rwxr-xr-x. 1 ilnitsky year-14   30 Sep 19 12:52 test.txt
-rwxr-xr-x. 1 ilnitsky year-14   57 Sep 19 12:52 file.tab
-rwxr-xr-x. 1 ilnitsky year-14   62 Sep 19 12:52 streams.sh
-rwxr-xr-x. 1 ilnitsky year-14   83 Sep 19 12:52 fruits.txt
-rwxr-xr-x. 1 ilnitsky year-14   83 Sep 19 12:52 fruits.csv
-rwxr-xr-x. 1 ilnitsky year-14  130 Sep 19 12:52 1.txt
-rwxr-xr-x. 1 ilnitsky year-14  254 Sep 19 12:52 example.txt
-rwxr-xr-x. 1 ilnitsky year-14  254 Sep 19 12:52 example2.txt
-rwxr-xr-x. 1 ilnitsky year-14  365 Sep 19 12:52 chromsizes.tsv
drwxr-xr-x. 2 ilnitsky year-14 4096 Sep 19 12:52 files
kodomo:~$

Опция -R команды ls

При просмотре содержимого директории при помощи команды ls мы будем видеть, если они есть, вложенные директории, однако мы не будем знать, какие объекты находятся внутри вложенных директорий. Мы конечно можем отдельно посмотреть содержимое каждой директории через команду ls, однако это займёт слишком много времени. Для того, чтобы сэкономить нам наши силы и время, умные программисты придумали опцию -R. Она показывает содержимое всех вложенных директорий, и директорий, вложенных во вложенные директории, и так далее вплоть до бесконечности.

Вот как эта опция работает при показе содержимого уже знакомой нам папки Seminar3:

kodomo:~$ ls -R  /tmp/Seminar3
/tmp/Seminar3:
1.txt  cat.txt  chromsizes.tsv  example2.txt  example.txt  files  file.tab  fruits.csv  fruits.txt  new.csv  one.err  one.log  streams.sh  test.txt

/tmp/Seminar3/files:
feature_table.txt  organisms.txt
kodomo:~$

Для большей наглядности работы опции -R рассмотрим домашнюю директорию:/home/students/y24/necrosinter

Вот как работает ls без опции -R на этой директории:

kodomo:~$ ls ~
Desktop  Downloads  public_html  term1
kodomo:~$

Мы видим вложенные директории, однако не видим их содержимого

А теперь давайте используем опцию -R вместе с командой ls:

/home/students/y24/necrosinter:
Desktop  Downloads  public_html  term1

/home/students/y24/necrosinter/Desktop:

/home/students/y24/necrosinter/Downloads:

/home/students/y24/necrosinter/public_html:

/home/students/y24/necrosinter/term1:
credits  genome  pr3

/home/students/y24/necrosinter/term1/credits:
file_1.sh  file_2.gz  file_3.pl  file_4.fasta  file_5.png

/home/students/y24/necrosinter/term1/genome:
GCF_022846375.1_ASM2284637v1_cds_from_genomic.fna  GCF_022846375.1_ASM2284637v1_feature_table.txt  GCF_022846375.1_ASM2284637v1_genomic.fna

/home/students/y24/necrosinter/term1/pr3:
kodomo:~$

Мы можем прекрасно видеть содержимое КАЖДОЙ директории, которая находится внутри нашей директории

Заключение

Мы все молодцы - соблюдали закон, поэтому ни для кого заключения не будет :)

Users/necrosinter/pr3 (последним исправлял пользователь necrosinter 2024-09-23 18:54:31)