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

Далі будуть наведені приклади опцій та приклади їх використання.
| -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 file2
Вивести інформацію про користувача/групу у вигляді 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