Практикум №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:~$
Мы можем прекрасно видеть содержимое КАЖДОЙ директории, которая находится внутри нашей директории
Заключение
Мы все молодцы - соблюдали закон, поэтому ни для кого заключения не будет