Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

LS

НАЗВАНИЕ
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 и значение переменной окружения 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] у файла, который могут выполнять прочие пользователи. Располагается на месте права на выполнение для прочих пользователей.
TБит навязчивости установлен, а права на выполнение у прочих пользователей нет. Располагается на месте права на выполнение для прочих пользователей.

ПРИМЕРЫ

  1. Если файл имеет режим
    
    -rwxr--r--
    
    
    он доступен владельцу для чтения, записи и выполнения, а членам группы и прочим пользователям только для чтения. Кстати, по умолчанию на сервере университета файлы создаются со следующими правами доступа:
    
    -rw-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, find.

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