Практикум №3
Команда ls – одна из наиболее часто используемых команд в Bash. Её функция заключается в выведении информации о файлах в рассматриваемой директории. Синтаксис ls выглядит следующим образом:
ls [OPTION]... [FILE]...
Для более четкого определения формата вывода информации о содержимом директории пользователь может воспользоваться опциями. В статье будут рассмотрены некоторые из них: -h, -S и -r.
Описание опции –h
Опция -h (другой вариант: --human-readable – читаемое человеком) позволяет при использовании вместе с опциями -s или -l указать размер в "человекопонятном виде", то есть в блоках – единицах измерения, наиболее удобных для прочтения человеком c округлением в меньшую сторону с точностью до одного знака после разделителя, если значение от 1 до 9.9 включительно, и с точностью до целого, если значение 10 и больше. К примеру, если размер файла составляет 1030 байт, размер будет выведен как 1K (1 килобайт), а если 6081450 байт - то как 5.8M (5.8 мегабайт).
Без указания опции -h размер указывается в байтах и без подписи размерности, а суммарный размер содержимого директории – в блоках, но без указания размерности:
sevartem@kodomo:~$ ls /folder -l
total 313
-rw-r--r--. 1 username year-24 948 Sep 26 09:47 file_1.sh
-rw-r--r--. 1 username year-24 319788 Sep 26 09:52 file_5.pdb
sevartem@kodomo:~$
При указании опции -h размерность (если размер файла выше 1 килобайта, иначе без подписи) подписывается рядом с величиной и имеет тот вид, с которым размер файла будет наиболее удобным для понимания (например, написать 313K (то есть 313 килобайт) вместо 319788 (то есть 319788 байт):
sevartem@kodomo:~$ ls /folder -l -h
total 313K
-rw-r--r--. 1 username year-24 948 Sep 26 09:47 file_1.sh
-rw-r--r--. 1 username year-24 313K Sep 26 09:52 file_5.pdb
sevartem@kodomo:~$
Описание опции –S
Опция -S сортирует выводимые файлы и папки по убыванию их размера. Если несколько файлов или папок имеют одинаковый размер, они сортируются в алфавитном порядке.
Без указания опции -S (для наглядности введены опции -h и -s) файлы выводятся в алфавитном порядке:
sevartem@kodomo:~$ ls -h -s /folder
0 an_empty_folder 170M BEspy.pdf 22K COPY_letter.txt 2.5T homework 22K letter.txt 170M matan 5.2K virus.exe
sevartem@kodomo:~$
При указании опции -S файлы и папки выводятся по убыванию размера:
sevartem@kodomo:~$ ls -h -s -S /folder
2.5T homework 170M BEspy.pdf 170M matan 22K COPY_letter.txt 22K letter.txt 5.2K virus.exe 0 an_empty_folder
sevartem@kodomo:~$
Примечания:
1. homework, matan и an_empty_folder – папки с файлами (или без файлов).
2. Приведен выдуманный пример, поскольку примеры с реальными директориями не были бы достаточно наглядными и не отражали бы все особенности опции -S.
Описание опции -R
Опция -R рекурсивно проверяет и демонстрирует содержимое всех каталогов, являющихся подкаталогом выбранной папки
Без опции -R команда ls выводит содержимое только рассматриваемой папки
sevartem@kodomo:~$ ls ~
dead.letter Desktop Downloads mail public_html temp term1 test
sevartem@kodomo:~$
С опцией -R команда ls выводит содержимое всех подкаталогов текущей папки, причем перед выводом содержимого на предыдущей строке выводится расположение рассматриваемого каталога:
sevartem@kodomo:~$ ls -R ~
/home/students/y24/sevartem:
dead.letter Desktop Downloads mail public_html temp term1 test
/home/students/y24/sevartem/Desktop:
/home/students/y24/sevartem/Downloads:
2_5453984149473878580.pdf
/home/students/y24/sevartem/mail:
/home/students/y24/sevartem/public_html:
/home/students/y24/sevartem/temp:
sevartem
/home/students/y24/sevartem/term1:
credits genome pr3 pr4 pr5 pr6 pr7
/home/students/y24/sevartem/term1/credits:
aminoacid_description.txt count_rRNA.sh.save.1 file_3.png out_C.txt
aminoacid_formula.png cw6.txt file_4.png pr5.out
count_hypotheticals.sh errors.txt file_5.pdb pr5.sh
count_rRNA.sh file_1.sh GCF_004001325.1_ASM400132v1_feature_table.txt sevastyanov_photo.jpg
count_rRNA.sh.save file_2.fasta lines.out strange_files
/home/students/y24/sevartem/term1/credits/strange_files:
'aa*' 'bssk*f' 'efsk*z' 'ge*llhv' 'jze*k' 'ogstim*' 'r*wg' 's*m' 'ta*zxl' 'wa*b' 'ylv*kjn'
'a*ajw' 'bve*knx' 'eooc*' 'gna*ix' 'la*c' 'ovnfu*g' 'r*z' 'sp*' 'tesjto*' 'wgr*' 'yrh*'
'ad*pb' 'csgw*i' 'er*' 'grg*hl' 'lex*s' 'pdgabi*' 'sc*ml' 'sph*ko' 'trom*a' 'wha*' 'zvd*t'
'afosh*' 'dr*' 'ey*a' 'hmja*' 'lfvnbd*' 'pgedcw*' 'sh*bgpd' 'sp*lph' 'trry*o' 'whyer*z'
'ak*gszg' 'dsch*ee' 'ez*' 'hrw*wx' 'moa*' 'pgwr*' 'sipg*w' 'ssem*ux' 'v*b' 'wsob*'
'aumcch*' 'ea*ufgc' 'fbr*y' 'ifivjd*' 'msek*f' 'prw*b' 'si*smw' 'svm*o' 'vb*' 'wuls*'
'awsb*f' 'e*aylzo' 'fiwa*k' 'imtr*' 'mxa*mb' 'rbwz*re' 'skmybg*' 'sw*f' 'vp*rzot' 'xak*'
'ayh*' 'ec*er' 'fmel*da' 'jetdc*g' 'nwekmn*' 'r*f' 's*lebhg' 'syk*rcp' 'v*yp' 'xs*fcj'
'bep*gvr' 'ed*' 'fsas*' 'jkss*' 'oepeo*' 'rp*o' 'slz*' 'szv*' 'vzy*i' 'ye*sodl'
/home/students/y24/sevartem/term1/genome:
GCF_004001325.1_ASM400132v1_cds_from_genomic.fna GCF_004001325.1_ASM400132v1_genomic.fna
GCF_004001325.1_ASM400132v1_feature_table.txt
/home/students/y24/sevartem/term1/pr3:
/home/students/y24/sevartem/term1/pr4:
text.txt
/home/students/y24/sevartem/term1/pr5:
coll.txt cols.tsv FT rows.tsv
/home/students/y24/sevartem/term1/pr6:
COPY_feature_table.txt pr5.sh pwd.sh
/home/students/y24/sevartem/term1/pr7:
cds.csv
/home/students/y24/sevartem/test:
man_ls.txt sevartem
sevartem@kodomo:~$