ls

Программа ls может показать:

  • содержимое директории;
  • список файлов;
  • подробную информацию о файлах и т.д.
ls [опции] [файл...]

Если программу ls выполнить без каких-либо аргументов, будет показан список всех файлов, находящихся в текущей директории, за исключением скрытых файлов.

Для того, что бы увидеть все файлы в директории, в том числе и скрытые, необходимо использовать опцию –a:

ls -a

В файловой системе Linux у файлов нет атрибута «скрытый файл». Принято считать, что если имя файла начинается с точки — то это скрытый файл. К таким файлам можно отнести директории . и .. .

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

ls /etc

Что бы получить полную информацию о файле/файлах, требуется использовать параметр –l. Если Вы будете указывать путь к директории, ls покажет полную информацию о файлах, находящихся в этой директории:

$ ls -l /etc
итого 1656
-rw-r--r--   1 root root    15067 2002-02-24 23:37 a2ps.cfg
-rw-r--r--   1 root root     2584 2003-10-30 17:21 a2ps-site.cfg
drwxr-xr-x   3 root root     4096 2004-11-05 11:20 acpi/
-rw-r--r--   1 root root       47 2005-05-12 21:30 adjtime
drwxr-xr-x   2 root root     4096 2005-04-04 04:26 apache/
drwxr-xr-x   3 root root     4096 2004-02-24 14:50 apsfilter/
-rw-r--r--   1 root root     6299 2005-02-17 22:47 asound.state
-rw-r--r--   1 root root        0 2003-11-24 03:22 at.deny
-rw-r--r--   1 root root       79 2003-10-14 22:19 bashrc
......
$

Самое первое значение итого или total (Какое слово будет выводиться на экран зависит от того какой язык используется в Вашей системе.) показывает, какое количество дискового пространства (в блоках) занимают файлы, находящиеся в этой директории. Один блок равен одному килобайту.

Затем отображается подробная информация о файлах, один файл — одна строка:

  • Первое поле — в этом поле показаны тип файла и права доступа. Обратите внимание на то, что в Linux права доступа не наследуются. То есть нельзя как в Windows или Novell Netware определить права доступа для директории, которые будут автоматически распространяться на все файлы, которые находятся в этой директории. В Linux у каждого объекта файловой системы права доступа свои и их значение не наследуется.
  • Второе поле — количество ссылок на файл (Имеются в виду жесткие ссылки). Файл существует до тех пор, пока существует хотя бы одна ссылка на него. Что такое ссылка будет рассказано дальше в этой главе.
  • Третье поле — владелец файла. В Linux у каждого файла обязательно должен быть владелец. У файла может быть только один владелец.
  • Четвертое поле — группа, которой принадлежит данный файл. Это тоже особенность Linux — любой файл должен принадлежать группе пользователей. Файл может принадлежать только одной группе пользователей.
  • Пятое поле — размер файла в байтах.
  • Шестое поле — время последней модификации (изменения) файла.
  • Седьмое поле — имя файла.

Какие поля будут выводиться на экран, зависит от параметров, переданных при вызове программы ls.

Если программе был передан параметр –F — тогда после каждого исполняемого файла будет выводиться символ *, после директории символ /, символьной ссылки -> и т.д. Обычно этот параметр передается по умолчанию.

Если Вы хотите получить информацию о конкретном файле, программе ls следует указать путь к интересующему Вас файлу:

ls -l /etc/hosts

Иногда возникает необходимость посмотреть содержимое сразу нескольких директорий. В этом случае, программе ls следует указать пути к этим директориям, разделяя их пробелами.

ls /etc/ssh /etc/ssl

Если необходимо посмотреть содержимое директории и всех поддиректорий, используйте параметр –R (Помните? Большие и маленькие буквы в Linux различаются.):

ls -R /etc

Перечисленные выше опции программы ls определены в стандарте POSIX и могут использоваться в любой POSIX совместимой операционной системе.

В Linux используется вариант программы ls, написанный сообществом GNU. И при ее вызове можно использовать дополнительные параметры.

Среди параметров, свойственных GNU версии программы можно выделить параметр «—color». Он позволяет различные типы файлов выводить различными цветами. Или наоборот, отключать эту возможность.

При использовании параметра —color, требуется указать дополнительный аргумент (Все GNU параметры обязательно начинаются с двух тире «—». Если параметру требуется передавать дополнительный аргумент, он указывается после символа «=».). Можно использовать перечисленные ниже аргументы:

  • none — не использовать цвета при выводе;
  • auto — использовать цвета только в том случае, если программа выводит данные на терминал;
  • always — при выводе всегда использовать цвета.

Какие цвета будут использоваться при выводе, определяет переменная среды окружения LS_COLORS. Чтобы посмотреть ее содержимое, можно выполнить следующую команду:

echo $LS_COLORS

Цифры, которые Вы увидите — это не запись в формате RGB. Для определения цвета используется специальный формат.

Откуда берутся значения переменной LS_COLORS и как определить свои собственные цвета, описано в приложении Цвета программы ls.

В Slackware Linux используется еще одна переменная среды окружения, которая влияет на работу программы ls — LS_OPTIONS. В этой переменной содержатся параметры программы, которые передаются программе по умолчанию. Что бы посмотреть её содержимое можно выполнить следующую команду:

echo $LS_OPTIONS

В других дистрибутивах Linux для передачи параметров по умолчанию используется механизм псевдонимов (aliases), о котором будет рассказано позже.