Команда ls приклади використання та опції

команда
Командаls - ймовірно найбільш використовувана команда в будь-якійUNIX -системі. Її призначення - виведення інформації про файли та каталоги. Додаткові опції команди дозволяють отримати докладнішу інформацію та сортувати її певним чином.

Далі будуть наведені приклади опцій та приклади їх використання.

-RРекурсивно обійти підкаталоги, що зустрілися.
-aВивести список усіх файлів (без цієї опції не виводяться приховані файли, імена яких починаються з точки).
-dЯкщо аргумент є каталогом, виводити тільки його ім'я, а не вміст. Часто використовується з прапором -l для отримання інформації про стан каталогу.
-CВиведення в кілька колонок із сортуванням по колонках.
-xВиведення в кілька колонок із сортуванням по рядках.
-mВиведення у вільному форматі, імена файлів розділяються комами.
-lВисновок у довгому форматі: перед іменами файлів видається режим доступу, кількість посилань на файл, імена власника та групи, розмір у байтах та час останньої модифікації (див. нижче). Якщо файл є спеціальним, то поле розміру виводиться старший і молодший номери пристрою.
-nТе саме, що і -l, але ідентифікатори власника та групи виводяться у вигляді чисел, а не у вигляді імен.
-oТе саме, що і -l, але ідентифікатор групи не виводиться.
-gТе саме, що і -l, але ідентифікатор власника не виводиться.
-rЗмінити порядок сортування на зворотний алфавітний або, за наявності прапора -t, спочатку виводити старіші файли.
-tІмена файлів сортуються не за алфавітом, а за часом (спочатку йдуть найсвіжіші файли). За промовчанням використовується час останньої зміни. також прапори -u і -c.
-uЗамість останньої зміни використовувати час останнього доступу для сортування (з прапором -t) або для виведення (з прапором -l).
-cЗамість останньої зміни використовувати час останньої модифікації описувача файлу (тобто час створення файлу, зміни режиму доступу до нього тощо) для сортування (з прапором -t) або для виведення (з прапором -l).
-pЯкщо файл є каталогом, то видаватиме після його імені символ /.
-FЯкщо файл є каталогом, то видаватиме після його імені символ /; якщо файл виконується, то видавати після його імені символ *.
-bВидавати недруковані символи, що входять до імені файлу, у вісімковому вигляді (ddd).
-qВидавати недруковані символи, що входять до імені файлу, у вигляді символу ?.
-iВидавати у першій колонці номери описувачів файлів.
-sВидавати розмір файлів у блоках (включаючи непрямі блоки).
-fРозглядати кожен аргумент як каталог та виводити його вміст. Цей прапор скасовує прапори -l, -t, -s, -r і включає прапорець -a. Сортування імен файлів не провадиться; імена видаються у порядку, як вони перелічені у каталозі.

Тепер кілька прикладів найкорисніших опцій.

Вивести список лише каталогів:

# ls -d -1 /home/setevoy/*/ /home/setevoy/Desktop/ /home/setevoy/Downloads/ /home/setevoy/Dropbox/ /home/setevoy /Images/ /home/setevoy/Soft/ /home/setevoy/Temp/ /home/setevoy/VirtualBox VMs/

Те саме, але з використанням «довгого» (повного) висновку про каталоги:

# ls -dl /home/setevoy/*/ drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 /home/setevoy/Desktop/ drwxr-xr-x 2 setevoy setevoy 4096 May 5 10 :38 /home/setevoy/Downloads/ drwx—— 16 setevoy setevoy 4096 May 6 07:40 /home/setevoy/Dropbox/ drwxr-xr-x 2 setevoy setevoy 4096 May 5 12: /setevoy/Images/ drwxr-xr-x 2 setevoy setevoy 4096 May 5 18:29 /home/setevoy/Soft/ drwxrwxr-x 2 setevoy setevoy 4096 May 5 20:15 /home/sete / drwxrwxr-x 4 setevoy setevoy 4096 May 5 19:09 /home/setevoy/VirtualBox VMs/

Ключ -l дуже корисний, тому що дозволяє перевіряти власника та права на файли/каталоги:

# ls -l total 32 drwxr-xr-x 2 root root 4096 Aug 23 2012 bin drwxr-xr-x 2 root root 4096 Aug 23 2012 etc drwxr-xr- root root 4096 Aug 23 2012 games drwxr-xr-x 2 root root 4096 Aug 23 2012 include drwxr-xr-x 4 root root 4096 May 5 11:13 lib <13 5 10:22 man -> share/man drwxr-xr-x 2 root root 4096 Aug 23 2012 sbin drwxr-xr-x 7 root root 4096 Aug 23 2012 share drwxr-xr-x 2 root 2 src

Для виведення інформації про приховані файли (починаються з точки) використовуйте ключ -a:

# ls -la ls: cannot access .gvfs: Permission denied total 524 drwxr-xr-x 37 setevoy setevoy 4096 May 6 21:20 . drwxr-xr-x 3 root root 4096 May 5 10:25 .. drwx—— 3 setevoy setevoy 4096 May 5 10:39 .adobe -rw——- 1 root root 517 May 5 11:53 .bash_history -rw-r—r— 1 setevoy setevoy 220 May 5 10:25 .bash_logout -rw-r—r— 1 setevoy setevoy 133 May 5 11:52 .bashrc <13 drwx—— 17 setevoy setevoy 4096 May 5 18:29.cache drwxrwxr-x 3 setevoy setevoy 4096 May 5 10:54 .compiz-1 drwx—— 20 setevoy setevoy 4096 May 6 10:38 .config drwx—— 3 sete 10:38 .dbus

Про помилку з .gvfs можна почитати у статті ls: cannot access .gvfs: Permission denied.

Коротко зупинимося на позначеннях прав доступу та позначення файлів/каталогів. Перший символ:

d - файл є каталогом; b - файл є спеціальним блоковим файлом; c - файл є спеціальним символьним файлом; p - файл є іменованим каналом; - - звичайний файл.

Далі йдуть три групи символів, що позначають права доступу - r (read), w (write), x (execute) - читання, запис файл/каталог і виконання відповідно. Тема прав доступу вUNIX дуже велика, тому зараз не будемо вдаватися до подробиць.

Відкрити для редагування останній файл, що редагувався:

# nano file1.txt # nano file2.txt # nano `ls -t head -1`

Звичайне виведення ls без ключів виводить усі файли/каталоги одним рядком. Щоб вивести їх у колонку — виконуємо:

# ls -1 Desktop Downloads Dropbox file1.txt file2.txt Images Soft Temp VirtualBox VMs

Ключ -h використовується для виведення інформації про розмір у «людинозручному» вигляді, тобто. в Kb, Mb, Gb:

# ls -lh total 36K drwxr-xr-x 2 setevoy setevoy 4.0K May 6 10:22 Desktop drwxr-xr-x 2 setevoy setevoy 4.0K May 5 10:38 Downloads drwx—— 16 setevoy setevoy 4.0K May 6 07:40 Dropbox -rw-r—r— 1 root root 2 May 6 21:06 file1.txt -rw-r—r— 1 root root 2 May 6 21:06 file2.txt drwxr-xr-x 2 setevoy setevoy 4.0K May 5 12:00 Images drwxr-xr-x 2 setevoy setevoy 4.0K May 5 18:29 Soft <13 -x 2 setevoy setevoy 4.0K May 520:15 Temp drwxrwxr-x 4 setevoy setevoy 4.0K May 5 19:09 VirtualBox VMs

Відсортувати файли/каталоги за їх розміром, починаючи з найбільшого:

# ls -lS /var/log/ total 4152 -rw-r—r— 1 root root 1823273 May 6 19:46 dpkg.log -rw-r—— 1 syslog adm 825505 May 6 08:05 syslog.1 -rw-r—— 1 syslog adm 589203 May 6 19:25 kern.log -rw-r—r— 1 root root 47105 Aug 23 2012 bootstrap.log -rw-r—r— 1 root root 37440 May 6 19:46 aptitude -rw-r—r— 1 root root 20584 May 6 07:39 pm-powersave.log -rw-r— - 1 root adm 14329 May 5 11:38 dmesg.1.gz -rw-r-r- 1 root root 6167 May 6 07:39 kdm.log drwxr-xr-x 2 root root 4096 May 5 10:25 apt -rw-r—— 1 root adm 31 Aug 23 2012 boot -rw-r—— 1 syslog adm 0 May 5 10:38 ufw.log

Створити файли/каталоги за датою останньої модифікації, нові — в кінці списку:

# ls -rtl /var/log/ total 4152 drwx—— 2 speech-dispatcher root 4096 Feb 6 2012 speech-dispatcher drwxr-xr-x 2 root root 4096 Mar 12 2012 … drwxr-xr-x 2 root root 4096 Aug 10 2012 dist-upgrade … -rw-r—r— 1 root root 47105 Aug 23 2012 bootstrap.log … -rw-r—r— 1 root root 2990 May 5 19:20 fontconfig.log … -rw-r—— 1 syslog adm 60874 May 6 21:14 syslog

Щоб вивести нові на початку списку - використовуйте комбінацію опцій без ключа -r:

Те ж саме, але сортувати за датою останнього доступу до файлу, а не за датою його модифікації, використовуйте ключ -u :

Вивести список файлів/каталогів, розділений на 5 колонок, розділених на всю ширину вікна:

# ls /usr/local pr -T5 -W$COLUMNS bin games lib sbin src etc include man share

# ls -F -1 Desktop/ Downloads/ Dropbox/ file1 file1.txt file2 file2.txt file3 file4.txt@ Images/ Soft/ Temp/ VirtualBox VMs/

Втім, ту саму інформацію виводить і ls -l - перший символ d для каталогів (directory) та -> ; для посилань:

# ls -l total 36 drwxr-xr-x 2 setevoy setevoy 4096 May 6 10:22 Desktop … lrwxrwxrwx 1 root root 9 May 6 21:20 file4.txt file1.txt

Виводити список через кому:

# ls -m Desktop, Downloads, Dropbox, file1, file1.txt, file2, file2.txt, file3, file4.txt, Images, Soft, Temp, VirtualBox VMs

Вивести список рекурсивно, включаючи підкаталоги та їх вміст:

# ls -R .: Desktop Downloads Dropbox Images Soft Temp VirtualBox VMs

./Desktop: PDF-Viewer.desktop PDF-Viewer.lnk

./Dropbox: 172210-1920×1080.jpg 271027-1366×768.jpg …

Остортувати файли/каталоги у зворотному алфавітному порядку:

# ls -r VirtualBox VMs Temp Soft Images file4.txt file3 file2.txt file2 file1.txt file1 Dropbox Downloads Desktop

Вивести інформацію про номери inode файлів та каталогів:

# ls -i -1 2368762 Desktop 1969746 Downloads 1987155 Dropbox 1987223 file1 1969890 file1.txt 1987865 file26 file3 1987863 file4.txt 1969751 Images 2141585 Soft 2368300 Temp 2141811 VirtualBox VMs

Вивести інформацію про користувача/групу у вигляді UID та GID замість символьних імен:

# ls -n total 36 drwxr-xr-x 2 1000 1000 4096 May 6 10:22 Desktop drwxr-xr-x 2 1000 1000 4096 May 5 10:38 Downloads — 16 1000 1000 4096 May 6 07:40 Dropbox -rw-r—r— 1 0 0 0 May 6 21:10 file1 -rw-r—r— 1 0 0 2 May 6 21:06 file1.txt -rw-r—r— 1 0 0 0 May 6 21:10 file2 -rw-r—r— 1 0 02 May 6 21:06 file2.txt -rw-r—r— 1 0 0 0 May 6 21:10 file3 lrwxrwxrwx 1 0 0 9 May 6 21:20 file4.txt -> file1.txt drwxr-xr-x 2 1000 1000 4096 May 5 12:00 Images drwxr-xr-x 2 1000 1000 4096 May 5 18:29 Soft drx0 5 20:15 Temp drwxrwxr-x 4 1000 1000 4096 May 5 19:09 VirtualBox VMs