НАЗВА

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 (Ця опція з'явилась у fileutils-4.0.)

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

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

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

ВАДИ

На системах BSD, опція -s видає розміри, наполовину менші за дійсні для файлів, приєднаних через NFS з систем HP-UX. На HP-UX, навпаки, файли приєднані через NFS з BSD виводяться подвійної величини. Це завдячується недолікові в HP-UX і стосується також власної ls HP-UX.

СТАНДАРТИ

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

ДИВІТЬСЯ ТАКОЖ

?dircolors(1)

ПРИМІТКИ

Це сторінка описує ls, що постачається з пакетом fileutils-4.0; інші версії можуть трохи відрізнятись. Поправки і доповнення висилайте електронною поштою на aeb@cwi.nl. Доповіді про вади програми - на fileutils-bugs@gnu.ai.mit.edu.

Перереклав Віталій Цибуляк.