LS(1)

НАЗВАНИЕ
ls - выдача информации о файлах или каталогах

СИНТАКСИС


   ls  [-R] [-a] [-d] [-C] [-x] [-m] [-l] [-n] [-o] [-g] [-r] [-t] [-u] [-c

       [-p] [-F] [-b] [-q] [-i] [-s] [-f] [имя ...]

ОПИСАНИЕ
Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для файлов - повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы, выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по алфавиту, однако сначала всегда идут файлы, а потом каталоги с их содержимым.

Существует три основных формата выдачи. По умолчанию выдается по одному файлу в строке; флаги -C и -x позволяют выдавать информацию в несколько колонок, а флаг -m задает свободный формат. Для определения формата вывода при указании флагов -C, -x и -m используется переменная окружения COLUMNS, значение которой равно количеству символов в выходной строке. Если эта переменная не установлена, используется база данных terminfo(4) и значение переменной окружения TERM. Если эта информация недоступна, длина выходной строки берется равной 80.

Командой 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. Сортировка имен файлов не производится; имена выдаются в таком порядке, в каком они перечислены в каталоге.

Режим доступа к файлу при указании флага -l выводится в виде 10 символов. Первый символ означает:

d Файл является каталогом.
b Файл является специальным блочным файлом.
c Файл является специальным символьным файлом.
p Файл является именованным каналом.
- Обычный файл.

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

При использовании команды


     ls -l /util/by

результат выглядит примерно так:

 -rwxr-xr-x   1 root     sys           50 Jun 22 10:42 /util/by

Читая справа налево можно увидеть, что содержимое файла /util/by последний раз изменялось в 10 часов 42 минуты 22 января. Размер файла 50 байт. Владелец этого файла принадлежит группе sys, к тому же он является суперпользователем (входное имя - root). Следующее число, в данном случае 1, обозначает количество ссылок на файл /util/by. Наконец, последовательность минусов и букв указывает, что владелец, члены группы и прочие пользователи могут читать и выполнять файл, а владелец (и только он) имеет право писать в файл.

Права обозначаются следующим образом:

r Право на чтение.
w Право на запись.
x Право на выполнение (поиск в каталоге).
- Данное право доступа отсутствует.
l Учет блокировки доступа (бит переустановки идентификатора группы равен 1, бит права на выполнение членами группы равен 0). Располагается на месте права на выполнение для членов группы.
s Право переустанавливать идентификатор группы или идентификатор владельца и право выполнения файла для членов группы или владельца.
S Неопределенная комбинация бит: право переустанавливать идентификатор владельца есть, а право выполнения файла для владельца отсутствует.
t Установлен бит навязчивости [см. chmod(1)] у файла, который могут выполнять прочие пользователи. Располагается на месте права на выполнение для прочих пользователей.
T Бит навязчивости установлен, а права на выполнение у прочих пользователей нет. Располагается на месте права на выполнение для прочих пользователей.

ПРИМЕРЫ

  1. Если файл имеет режим
    
         -rwxr--r-
    он доступен владельцу для чтения, записи и выполнения, а членам группы и прочим пользователям только для чтения.
  2. Режим
    
         -rwsr-xr-x
    
    
    свидетельствует о том, что файл доступен владельцу для чтения, записи и выполнения, а членам группы и прочим пользователям только для чтения и выполнения. Разрешена переустановка при выполнении идентификатора пользователя на идентификатор владельца файла.
  3. В случае режима
    
         -rw-rwl--
    файл доступен для чтения и записи только владельцу и членам группы; может быть блокирован при доступе.
  4. По команде
    
         ls -a
    
    
    будут выведены имена всех файлов в текущем каталоге, включая и те, которые начинаются с точки и обычно не выдаются.
  5. По команде
    
         ls -aisn
    
    
    будет выдана разнообразная информация: список всех файлов, включая те, которые обычно не выводятся (a); номера описателей файлов будут выведены в левой колонке (i); размеры файлов (в блоках) выводятся во второй колонке (s); наконец, будут выданы числовые идентификаторы владельцев и групп (n).

ФАЙЛЫ


   /etc/passwd             Идентификаторы    пользователей

 			   (для ls -l и ls -o).

   /etc/group              Идентификаторы групп для (ls -l

 			   и ls -o).

   /usr/lib/terminfo/?/*   Сведения о терминале.

СМ. ТАКЖЕ
chmod(1), find(1).

СЮРПРИЗЫ
Непечатные символы в именах файлов могут дезорганизовать выдачу.