Відмінності між версіями «Ls»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Рядок 1: Рядок 1:
 
==НАЗВА==
 
==НАЗВА==
  
ls, dir, vdir - перераховує вміст каталогу
+
'''ls''', '''dir''', ''vdir'' - перераховує вміст каталогу
  
 
==СТИСЛИЙ ОГЛЯД==
 
==СТИСЛИЙ ОГЛЯД==
  
 
ls [опції] [файл...]
 
ls [опції] [файл...]
 +
 
dir [файл...]
 
dir [файл...]
 +
 
vdir [файл...]
 
vdir [файл...]
  

Версія за 11:04, 27 вересня 2011

НАЗВА

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,

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

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

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


СТАНДАРТИ

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