Документация по LinuxLinuxDoc.Ru 🔍

ls, dir, vdir - программы для отображения содержимого каталога

НАЗВАНИЕ
ls, dir, vdir - программы для отображения содержимого
каталога

СИНТАКСИС
ls [опции] [файл...]
dir [файл...]
vdir [файл...]

Опции POSIX: [-CFRacdilqrtu1] [--]

Опции GNU (краткая форма): [-1abcdfghiklmnopqrstuvwxABCD-
FGHLNQRSUX] [-w cols] [-T cols] [-I шаблон] [--full-time]
[--show-control-chars] [--block-size=размер] [--for-
mat={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 заставляет ls
не считать аргументы-каталоги каталогами. Будут
отображаться только файлы, которые не начинаются с `.',
или все файлы, если задана опция -a.

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

Результаты печатаются по одному файлу в строке, если
только с помощью опции -C не задан многоколоночный вывод.
Однако, при выводе на терминал не определено, будет ли
информация располагаться в одной колонке или в нескольких.
Для задания одноколоночного или многоколоночного режима
вывода могут использоваться опции -1 и -C соответственно.

ОПЦИИ POSIX
-C Печатает список файлов в колонках (с вертикальной
сортировкой).

-F К каждому имени каталога добавляет суффикс `/', к
каждому имени FIFO - `|' и к каждому имени
исполняемого файла - `*'.

-R Включает режим рекурсивного спуска по дереву
каталогов с выдачей их содержимого.

-a Включает в список файлы, имя которых начинается с
`.'.

-c Указывает при сортировке (при задании опции -t или
-l) время изменения состояния файла вместо времени
последней модификации файла.

-d Выдает имена каталогов так, как если бы они
обычными файлами, а не показывать их содержимое.

-i Указывает номер каждого файла(inode).

-l Выдает в одноколоночном формате тип файла, права
доступа к файлу, количество ссылок на файл, имя его
владельца, имя группы, размер файла (в байтах),
время работы с файлом и имя файла (полный формат).
Типы файлов могут принимать следующие значения: -
(для обычного файла), d (для каталога), b (для
блочного устройства), c (для символьного
устройства), l (для символьной ссылки), p (для
FIFO) и s (для сокета). По умолчанию отображается
время последней модификации файла; опции -c и -u
позволяют выбрать два других времени. Для файлов
устройств, в поле, указывающем размер, обычно
проставляется основной и второстепенный номера
устройства.

-q Вместо непечатаемых символов в имени файла на
выводе будут ставиться знаки вопроса. (Эта опция
включена по умолчанию при выводе списка на
терминал.)

-r Производит сортировку файлов в обратном порядке.

-t Сортирует файлы согласно отображаемому времени.

-u Производит сортировку (опция -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
Заменяет неграфические символы в именах файлов
алфавитно-цифровыми последовательностями или
последовательностями вида -Q, только имена файлов
не заключаются в двойные кавычки.

-c, --time=ctime, --time=status
Сортирует содержимое каталога в соответствии со
временем изменения состояния файла (поле `ctime' в
inode). Если с помощью опции -l задан полный
формат, то выводит время изменения состояния файла
вместо времени его модификации.

-d, --directory
Выдает имена каталогов, как если бы они были
обычными файлами, вместо того, чтобы показывать их
содержимое.

-f Не сортирует содержимое каталога; выдавать файлы в
том порядке, в котором они записаны на диск. Эта
опция также разрешает -a и -U и запрещает -l,
--color, -s, и -t, если они были заданы перед -f.

-g Игнорируется; нужна для совместимости с Unix.

-h, --human-readable
Обозначает объем файла цифрами и буквами, например,
123M 456K 789 . (Новое в fileutils-4.0.)

-i, --inode
Выдает номер (также называемый inode или индексом)
каждого файла слева от его имени. (Этот номер
идентифицирует каждый файл в каждой файловой
системе)

-k, --kilobytes
Если выводятся размеры файлов, то указывает их в
килобайтах.

-l, --format=long, --format=verbose
В дополнение к имени каждого файла выводятся: тип
файла, права доступа к нему, количество ссылок на
него, имя его владельца, имя группы, размер файла в
байтах и время последней модификации файла (если не
задано другое). Если файл создан более 6 месяцев
назад или в результате рассинхронизации часов
разных машин получится, что будет он создан более,
чем через 1 час, временной штамп указывает только
год его создания. Каждый каталог со списком
содержимого предваряется строкой `total N', где N
-- это общее дисковое пространство, используемое
всеми файлами в данном каталоге. По умолчанию
размер блока составляет 1024 байта; если
установлена переменная окружения POSIXLY_CORRECT,
то размер каждого блока составляет 512 байтов (если
только не задана опция -k ). N высчитывает каждую
"жесткую" ссылку отдельно, так как задать это
по-другому через аргументы невозможно. Права
доступа отображаются практически в обычном
символьном виде, но 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, --reverse
Сортирует содержимое каталога в обратном порядке.

-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
Заметим, что цифровые части с предшествующими
нулями определяются, как более маленькие:
> 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 N
Задает вывод информации на экран в N колонок. По
умолчанию, если это возможно, данное значение
передается от драйвера терминала; в противном
случае используется значение переменной окружения
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). (Новое в fileu-
tils-4.0.)

-I, --ignore=шаблон
Не показывает файлы, имена которых совпадают с
заданным аргументом шаблон (шаблон - это
нерегулярное выражение), если только они не заданы
в командной строке. Как и в shell, начальный символ
`.' в имени файла не совпадает с символом `*',
заданным в начале аргумента шаблон.

-L, --dereference
Выдает информацию о файлах, на которые указывают
символьные ссылки, вместо информации о самих
символьных ссылках.

-N, --literal
Не заключает имена файлов в кавычки.

-Q, --quote-name, --quoting-style=c
Заключает имена файлов в двойные кавычки и
показывает неграфические символы, как в языке С.

-R, --recursive
Рекурсивно выдает список содержимого всех
каталогов.

-S, --sort=size
Производит сортировку по размеру файла, а не по
алфавиту. Таким образом, сначала будут показаны
файлы самого большого размера.

-T, --tabsize N
Устанавливает ширину табуляции в N колонок. По
умолчанию N=8. Количество N может быть также задано
с помощью переменной окружения TABSIZE, если при
этом не установлена переменная окружения
POSIXLY_CORRECT. ls использует табуляцию для
выравнивания вывода, когда это возможно. Если N
равно нулю, то табуляция не используется.

-U, --sort=none
Не производит сортировку: список файлов будет
выдаваться в том порядке, в каком файлы записаны на
диск. (Отличие между опциями -U и -f состоит в том,
что данная опция не запрещает и не разрешает
использование других опций). Эта опция может быть
особенно полезна, когда выдаются списки содержимого
очень больших каталогов: при этом сортировка не
выполняется, и весь процесс происходит быстрее).

-X, --sort=extension
Производит сортировку в алфавитном порядке по
расширениям файлов (символы после последней `.');
файлы без расширений будут показаны первыми.

--block-size=N
Выводит размеры в блоках по N байтов. (Новое в
fileutils-4.0.)

--color[=тип]
Задает цвет для различения типов файлов. Цвета
задаются с использованием переменной окружения
LS_COLORS. Информацию о том, как нужно задавать
значение этой переменной, можно найти на странице
руководства dircolors(1). Параметр тип
необязателен; он может принимать одно из следующих
значений:

none Вообще не использовать цвет. Установлено по
умолчанию.

auto Использовать цвет, только если стандартный
вывод является терминалом.

always Всегда использовать цвет. Задание --color
без параметра тип эквивалентно
--color=always.

--full-time
Выдает время в полном, а не в стандартном
(сокращенном) варианте. Данный вариант выглядит
так же, как если бы он был задан командой date(1)
по умолчанию; его невозможно изменить, но вы можете
извлечь строку с датой, используя команду cut(1), и
обработать результат `date -d'. Это может быть
очень полезно, потому что время в таком формате
отображается с секундами. (Файловые системы Unix
записывают времена файла с округлением до секунды,
так что данная опция показывает полную информацию о
времени). Например, это может помочь, если Вы
пытаетесь выяснить, почему некий Makefile неверно
вновь генерирует файлы.

--quoting-style=стиль
Использует стиль для выбора, в каком режиме
выводить имена файлов. Аргумент стиль может
принимать следующие значения:

literal
Вывод имен файлов такими, как они есть. Этот
стиль используется по умолчанию.

shell Заключает имена файлов в одиночные кавычки
для shell, если они содержат метасимволы или
могут привести к некорректному выводу.

shell-always
Заключает имена файлов в одиночные кавычки
для shell, даже если этого не требуется.

c Заключает имена файлов в двойные кавычки,
как в языке C; это равносильно опции -Q.

escape Равносильно значению в c за исключением
того, что имя файла не заключается в двойные
кавычки; эквивалентно опции -b .

По умолчанию значение данной опции может быть
задано переменной окружения QUOTING_STYLE. (См.
ниже главу ОКРУЖЕНИЕ).

--show-control-chars
Выдает неграфические символы в именах файлов. Так
задано по умолчанию, если вывод осуществляется на
терминал, а программа является ls.

СТАНДАРТНЫЕ ОПЦИИ GNU
--help Выводит подсказку на стандартный вывод и завершает
свою работу.

--version
Выводит информацию о версии программы на
стандартный вывод и завершает свою работу.

-- Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ
Переменная POSIXLY_CORRECT определяет размер блока при
выводе размеров. Переменная TABSIZE задает ширину
табуляции, если не установлена переменная POSIXLY_CORRECT.
Переменная COLUMNS (когда она содержит целое число)
определяет ширину колонок выводимой информации (для
использования с опцией -C). Имена файлов не должны
"обрезаться", чтобы уместиться в колонках при их выводе в
многоколоночном формате.

При работе обычным образом используются значения
переменных LANG, LC_ALL, LC_CTYPE и LC_MESSAGES.
Переменная TZ задает зону времен, которые выдаются ls.
Переменная LS_COLORS используется для задания цветов.

Переменная QUOTING_STYLE используется для задания
принимаемого по умолчанию значения опции --quoting-style .
Значение данной опции по умолчанию - literal, но авторы
предупреждают, что это значение по умолчанию может в
следующей версии измениться на shell.

НАЙДЕННЫЕ ОШИБКИ
В BSD-системах размеры файлов, подключенных по NFS из HP-
UX, будут вдвое меньше реальных. В системах HP-UX размеры
файлов, подключенных по NFS из BSD, будут вдвое больше
реальных. Это недостаток систем HP-UX; он также есть и в
программе ls HP-UX.

СООТВЕТСТВИЕ

POSIX 1003.2

ЗАМЕЧАНИЯ

Данная страница описывает версию ls из пакета fileu-
tils-4.0; другие версии могут немного отличаться от этой.
Исправления и дополнения присылайте по адресу: aeb@cwi.nl.
Отчеты об ошибках в этой программе присылайте по адресу:
fileutils-bugs@gnu.ai.mit.edu.
Читать новости Linux в Telegram
Linux - ls, dir, vdir - программы для отображения содержимого каталога
Мы в соцсетях ✉