Ls

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

НАЗВА

ls, dir, vdir - виводить вміст каталогу

СТИСЛИЙ ОГЛЯД

ls [опції] [файл...]

dir [файл...]

vdir [файл...]

Опції POSIX: [-CFRacdilqrtu1] [--]

Опції GNU (коротка форма): [-1abcdfghiklmnopqrstuvwxABCDFGHLNQRSUX] [-w стовпчиків] [-T стовпчиків] [-I зразок] [--full-time] [--show-control-chars] [--block-size=size] [--format={long,verbose,commas,across,vertical,single-column}] [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]

ОПИС

Програма ls перечислює спочатку власні аргументи файл, що не являються каталогом, після чого для кожного аргументу-каталогу перераховує всі файли, що там знаходяться. Якщо жодного файлу чи каталогу не вказано - використовується `.' (поточний каталог). Опція -d заставляє програму розглядати каталоги як звичайні файли, а не директорії. Перечислюються ті файли, що не містять на початку своєї назви крапку `.', хіба була надана опція -a, яка дозволяє побачити також приховані файли.

Файли, надані як аргумент (файли не-каталоги і список файлів, що знаходиться всередині каталогів) сортуються окремо, згідно з порядком сортування поточної локалі. Коли надана додаткова опція -l, спереду кожного перечисленого файлу приєднується також додаткова інформація про дозволи, кількість посилань, власника, розмір (у 512-байтових одиницях) і дату зміни файлу.

Вивід типово направляється на стандартний пристрій виводу, по одному запису на рядок, хіба було вказано багатостовпчиковий видрук опцією -C. Проте, для виводу для терміналу, не є визначеним, чи вивід буде одностовпчиковим, чи багатостовпчиковим. Щоб явно вказати формат виводу, потрібно застосувати опцію -1 для односповпчикового і опцію -C для, відповідно, багатосповпчикового.


ОПЦІЇ POSIX

-C  
Перелік файлів стовпчиками з вертикальним сортуванням.
-F  
Додає як суфікс `/' до кожної назви каталогу, `|' для кожного файлу FIFO і `*' для кожного виконуваного файлу.
-R  
Рекурсивно перечислить вміст всіх зустрінутих підкаталогів.
-a  
Включить у список файли, чия назва починається з `.' (крапки).
-c  
Використає час зміни стану замість час останньої модифікації файлу для сортування (у випадку опції -t) або для переліку (у випадку -l).
-d  
Перелічить каталоги як звичайні файли, замість того щоб перечислити їхній вміст.
-i  
Додасть перед назвою файлу його індексний номер на диску.
-l  
Виведе (у одностовпчиковому форматі) інформацію про дозволи файлу, кількість посилань на файл, назву власника, назву групи, розмір файлу (у байтах), мітку часу і, накінець, саму назву файлу.

Наступні літери позначають тип файлу: - (риска) вказує на звичайний файл, d вказує на каталог, b вказує на блоковий спеціальний пристрій, c вказує на символьний спеціальний пристрій, l вказує, що файл є символічним посиланням, p вказує на файл типу FIFO, s вказує на сокет.

Стандартно, часова мітка вказує на час останньої модифікації. Використовуючи -c або -u ви можете вибрати інші два види часових міток. У випадку спеціальних пристроєвих файлів, поле розміру звичайно замінюється на старший і молодший номер пристрою.

-q  
Виводить символи, що неможливо відобразити, в назвах файлів як знаки запитання. (Це може бути стандартним поводженням у випадку виводу до терміналів).
-r  
Міняє послідовність сортування на протилежну.
-t  
Сортує за часовими мітками.
-u  
Використає для сортування (y випадку -t) або для переліку (у випадку -l) час останнього доступу замість часу модифікації файлу.
-1  
Вивід у один стовпчик.
--  
Явне завершення списку опцій.

РИСИ GNU

Якщо в якості стандартного виводу використовується термінал, видрук здійснюватиметься стовпчиками (сортованими вертикально).

Команда dir (може бути викликана як d) тотожна `ls -C -b', тобто перелік здійснюється у стовпчики, сортовані вертикально. Команда vdir (може бути викликана як v) тотожна `ls -l -b', тобто для виводу використовується довгий формат).

ОПЦІЇ GNU

-1, --format=single-column  
Перелік файлів по одному на кожний рядок.
-a, --all  
Перелік всіх файлів у каталозі, включаючи ті, чия назва починається з `.' (крапки).
-b, --escape, --quoting-style=escape  
Екранує неграфічні знаки у назвах файлів, використовуючи абеткові і октальні послідовності зі зворотнім слешом, схожі до тих які використовуються у мові C. Ця опція подібна до опції -Q за виключенням того, що назви файлів не оточуються подвійними лапками.
-c, --time=ctime, --time=status  
Сортує вміст каталогу у відповідності з часом зміни стану файлу (`ctime' з індексного вузла). Разом з використанням довгого формату (-l) надрукує час зміни стану замість часу модифікації.
-d, --directory  
Перелічить каталоги як звичайні файли, замість того щоб перечислити їхній вміст.
-f  
Не сортує вміст каталогу, натомість перелічує його у тій послідовності у якій його збережено на диску. Одночасно вмикає опції -a і -U і внеможливлює -l, --color, і -t, якщо вони були вказані до -f.
-g  
Ігнорується. Існує тільки для сумісності з Unix.
-h , --human-readable  
Додає літеру як вказівник розміру, наприклад M для бінарного мегабайту, до кожного виведеного розміру файлу. (З'явилась у fileutils-4.0.)
-i, --inode  
Виведе номер індексного вузла (який також називають серійним номером файлу або індексним номером) з лівої сторони кожної назви файлу. (Цей унікальний номер ідентифікує кожний файл в межах однієї файлової системи.)
-k, --kilobytes  
Якщо розмір файлів також виводиться, надрукує його у кілобайтах.
-l, --format=long, --format=verbose
На додаток назви файлу вивeде також тип файлу, дозволи, кількість жорстких посилань на файл, назву власника, назву групи, розмір файлу у байтах і мітку часу (час модифікації, хіба було вибрано інший вказівник часу). У випадку файлів старших 6-и місяців або файлів з міткою часу більшою за 1-у годину у майбутнє, виведений час міститиме цифру року замість часу доби.

Для кожного каталогу виводиться також рядочок `total блоки, де блоки дорівнюватиме загальній кількості дискового простору, використовуваного файлами у цьому каталозі. Стандартно використовуються 1024-байтові блоки. Якщо встановлено змінну середовища POSIXLY_CORRECT, буде використано 512-байтові блоки (хіба вживалася опція -k). Обчислення блоків розглядає кожне жорстке посилання окремо, це навряд чи можна назвати недоліком.

Перелічені дозволи схожі до специфікації символічного представлення, але ls об'єднує декілька бітів у третій знак кожного набору дозволів

s
Означає, що встановлено біти setuid або setgid і відповідний біт на дозвіл виконання.
S
Означає, що встановлено біти setuid або setgid але без біту дозволу на виконання.
t
Означає, що встановлено стійкий біт і біт дозволу виконання для інших користувачів.
T
Означає, що встановлено стійкий біт але без біту дозволу на виконання решті користувачів.
x
Якщо встановлено біт дозволу на виконання і жодна з умов, вказаних вище, не справджується.
-
Решта випадків.
-m, --format=commas  
Перелічить файли горизонтально скільки розміститься на кожному рядку, розділяючи назви комою і пробілом.
-n, --numeric-uid-gid  
Перелічить числові UID і GID файлів замість їхніх назв.
-o  
Видасть перелік у довгому форматі, але без відображення інформації про групу. Тотожне --format=long --no-group:. Цю опцію надано для сумісності з іншими версіями ls.
-p, --file-type, --indicator-style=file-type  
Додає знак до кожної назви файлу, який вказує на його тип. Схоже на -F за винятком того, що виконувані файли не позначаються. (Насправді fileutils-4.0 розглядає опцію --file-type як --classify.)
-q, --hide-control-chars  
Виводить неграфічні символи в назвах файлів як знаки запитання. Стандартне поводження.
-r  
Міняє послідовність сортування на протилежну.
-s, --size  
Виводить зліва від назви файлу його розмір 1024-байтових блоках. Якщо встановлено змінну середовища POSIXLY_CORRECT, використовуватиметься 512-байтові блоки натомість, хіба було вжито також опцію -k.
-t, --sort=time  
Сортує за часом модифікації (`mtime' індексного вузла) замість алфавітної послідовності; новіші файли йдуть першими.
-u, --time=atime, --time=access, --time=use  
Сортує вміст каталогу за часом останнього доступу до файлів замість часу модифікації (`atime' індексного вузла). Якщо використовується довгий формати виводу, видруковує також час останнього доступу замість замість часу модифікації у полі часу.
-v
Сортує вміст каталогу відповідно до версії файлів. Ця опція полягається на те, що назви файлів часто містять числові вказівники версії. Стандартні функції сортування, як правило, не призводять до бажаного результату, оскільки використовують познакове порівнювання назв. Саме тому було додану цю опцію, особливо корисну для перегляду каталогів що містять багато індексованих файлів або таких, до яких додано номер версії. Наприклад:
> ls -1              > ls -1v
foo.zml-1.gz         foo.zml-1.gz
foo.zml-100.gz       foo.zml-12.gz
foo.zml-12.gz        foo.zml-25.gz
foo.zml-25.gz        foo.zml-100.gz

Зверніть увагу також, що числові частини з передуючими нулями вважаються дробовою частиною i сортуються відповідно:

> ls -1              > ls -1v
abc-1.007.           tgz abc-1.007.tgz
abc-1.012b.tgz       abc-1.01a.tgz
abc-1.01a.tgz        abc-1.012b.tgz


-w, --width nnn  
Вважати ширину екрану рівною nnn стовпчиків. Значення за замовчуванням отримується з драйверу терміналу, якщо можливо, якщо ні - використовується значення змінної середовища COLUMNS, якщо її встановлено. В протилежному випадку стандартним значенням є 80.
-x, --format=across, --format=horizontal  
Перечислить файли стовпчиками, використовуючи горизонтальне сортування.
-A, --almost-all  
Перелік всіх файлів і каталогів за винятком `.' і `..'.
-B, --ignore-backups  
Не виводити файлів з `~' суфіксом, хіба їх було вказано на командному рядку.
-C , --format=vertical  
Перечислить файли стовпчиками, використовуючи вертикальне сортування. Це поводження є стандартним, якщо для стандартного виводу служить термінал. Завжди стандартна для dir або d.
-D, --dired  
Використовується разом з довгим форматом виводу (-l). Виводить додатковий рядок після основного виводу:
   //DIRED// BEG1 END1 BEG2 END2 ... 

BEGn і ENDn являються беззнаковими цілими, що реєструють байтову позицію початку і кінця кожної назви файлів у виводі. Це значно полегшує редактору Emacs знаходження назв файлів, навіть якщо вони містять незвичні знаки, такі як пробіли або знаки нового рядка.

Якщо каталоги перечислено рекурсивно (-R), до виводу добавляються назви підкаталогів:

   //SUBDIRED// BEG1 END1 ... 
-F, --classify, --indicator-style=classify  
Додає певний знак до кожної назви файлів для позначення типу файлу. Знак `*' додається до назв виконуваних файлів, `/' - до каталогів, `@' - до символічних посилань, `|' - до FIFO і `=' позначає сокети. Назви звичайних файлів залишаються незмінними.
-G , --no-group  
Пригнічує вивід інформації про групи у випадку довгого формату виводу.
-H, --si  
Здійснює те саме що й опція -h, тобто добавляє літеру розміру але обчислює розмір у офіційних одиницях SI (з множником 1000 замість 1024, тож Mпозначатиме 1000000 а не 1048576). (Опція з'явилась у fileutils-4.0.)
-I, --ignore=зразок  
Не перелічуватиме файлів, чия назва співпадає зі зразком оболонкового типу зразок (не є регулярним виразом), хіба ці файли було вказано на командному рядку. Так само як в оболонці, початкова `.' (крапка) у назві файлу не підпадатиме під байдужий символ у зразку, тож `ls -a --ignore=*' перечислить тільки файли, чия назва починається з крапки. Також це дозволяє створити дуже простенький root-kit для приховування ваших файлів, якщо добавите LS_OPTIONS="$LS_OPTIONS -I mystuff" до /etc/profile або подібних.
-L, --dereference  
Виведе інформацію про дійсні файли, замість про файли, що вказують на них як символічні посилання.
-N, --literal  
Не екранувати назви файлів.
-Q, --quote-name, --quoting-style=c  
Включить назви файлів у подвійні лапки і екранує неграфічні знаки як це здійснюється у мові C.

Додаткові стилі екранування: literal, shell, shell-always, escape, locale. clocale (дивіться --quoting-style нижче).

-R, --recursive  
Перечислить вміст усіх каталогів рекурсивно.
-S, --sort=size  
Сортує вміст каталогу відповідно розмірів файлів, замість абеткового сортування; більші розміром файли йдуть першими.
-T, --tabsize nnn  
Вважатиме, що розмір кроку табуляції дорівнює nnn стовпчиків. Стандартним значенням є 8, що можна переважити змінною середовища TABSIZE за умови, що POSIXLY_CORRECT не встановлено. Для ефективності ls використовує табуляцію у виводі, коли це можливо. Якщо nnn дорівнюватиме 0, не табуляція вживатиметься взагалі.
-U, --sort=none  
Не сортує вміст каталогу, виводить його у тій послідовності, у якій файли збережено на диску. (Різниця між -U і -f полягає у тому, що перша не вмикає або внеможливлює додаткових опцій.) Ця опція особливо корисна для переліку дуже великих директорій, оскільки відмова від сортування може значно прискорити операцію.
-X, --sort=extension  
Сортує вміст каталогу в алфавітному порядку закінчень файлів (знаки після останньої `.'); файли без закінчення виводяться першими.
--block-size=nnn  
Виведе розміри у nnn-байтових блоках. (Опція з'явилась у fileutils-4.0.)
--color[=коли]
Вказує чи використовувати колір для розрізнення файлових типів. Кольори встановлюються за допомогою змінної середовища LS_COLORS. Щоб дізнатись як налагодити цю змінну, загляніть до dircolors(1).

Аргумент коли можна пропустити, або він може бути одним з: none Не використовувати колір зовсім. Це стандартне поводження. auto Використовувати кольоровий вивід тільки коли пристроєм для виводу служить термінал. always Завжди використовувати колір. Вживання --color без аргументу коли: тотожне --color=always.

--full-time  
Виведе повну форму часу, замість стандартної скороченої. Цей формат співпадає зі стандартним форматом date(1). (Це неможливо змінити, але ви можете здобути ланцюжок дати за допомогою cut(1) і передати результат `date -d'.)

Це корисне тим, що вивід часу включає також секунди. (Файлові системи Юнікса включають часові мітки з точністю до найближчої секунди, тож ця опція дозволяє отримати фактично цілковиту інформацію часу.) Так наприклад, це може допомогти у випадку, коли Makefile не генерує файли відповідним чином.

--quoting-style=стиль
Використовувати вказаний стиль для екранації назв у виводі. Слово стиль може бути одним з наступних:
  • literal Виводить назви такими, якими вони є. Це стандартне поводження ls.
  • shell Екранує назви як це здійснюється для оболонки, у випадку якщо назви містять метазнаки, що можуть призвести до неоднозначного виводу.
  • shell-always Екранує назви як для оболонки, навіть якщо вони не вимагають екранування.
  • c Екранує назви як це здійснюється у мові C. Ця опція тотожна -Q.
  • escape Екранує подібно до c, але пропускає навкружні подвійні лапки. Ця опція тотожна -b. Стандартне значення для цих опцій може бути вказане у змінній середовища QUOTING_STYLE. (Дивіться розділ СЕРЕДОВИЩЕ нижче.)
--show-control-chars  
Виводить неграфічні знаки такими якими вони є у назвах файлів. Це стандартне поводження ls, якщо пристроєм виводу не є термінал.

СТАНДАРТНІ ОПЦІЇ GNU

Змінна POSIXLY_CORRECT визначає вибір одиниць. Якщо її не встановлено, змінна TABSIZE може вказувати на кількість знаків кроку табуляції. Змінна COLUMNS (якщо містить ціле десяткове число) визначає ширину стовпчика виводу (для використання з опцією -C). Назви файлів не повинні стинатись для того, щоб розмістити їх у багастовпчиковому виводі.

Змінні середовища LANG, LC_ALL, LC_COLLATE, LC_CTYPE,

LC_MESSAGES і LC_TIME залишаються чинними. Змінна TZ

визначає часовий пояс для ланцюжків, що виводить ls. Змінна LS_COLORS визначає кольори, що використовуються. Змінна LS_OPTIONS встановлює опції, що завжди вживатимуться за замовчуванням.

Змінна QUOTING_STYLE встановлює стандартне значення опції --quoting-style. Початковим її значенням є literal, хоча автори ls попередили, що це значення може помінятися до shell у майбутніх версіях програми.


СТАНДАРТИ

Програма відповідає POSIX 1003.2.