Одной из наиболее часто возникающих ситуаций при работе с командной строкой является необходимость посмотреть содержимое какого-либо каталога. В Unix для этих целей используется команда ls.
Синтаксис:
ls [-ключи] [имя_файла | имя_каталога] …
Если команда ls вводится без параметров и ключей, то на экран выводится содержимое текущего каталога. При этом выводятся только имена файлов и подкаталогов текущего каталога без каких-либо пометок и дополнительной информации (рис. 4.3).
Рис. 4.3. Пример вывода команды ls без параметров и ключей
По умолчанию результат работы команды ls сортируется в алфавитном порядке.
Если задано несколько параметров, то параметры сначала сортируются соответствующим образом, причем файлы выводятся перед содержимым каталогов.
Для каждого заданного параметра команда ls выводит:
· содержимое (оглавление) указанного каталога, если параметр является именем каталога;
· имя файла и другую требуемую информацию, если параметр является именем файла.
Для управления форматом вывода служат многочисленные ключи команды (табл. 4.1).
Таблица 4.1. Ключи команды ls
№
Ключ
Назначение
1.
-1 (цифра 1)
Вывод информации о каждом следующем файле или каталоге в отдельной строке.
2.
-a
Вывод списка всех файлов и подкаталогов в каталоге, включая скрытые файлы (их имена начинаются с точки).
3.
-c
Сортировка по дате создания.
4.
-F
Пометить исполняемые файлы звездочкой (*), каталоги – наклонной чертой (/) и символические ссылки – символом @.
5.
-r
Вывод в обратном порядке.
6.
-R
Рекурсивная работа.
7.
-l (малая буква L)
Длинный (наиболее полный) формат вывода.
8.
-u
Сортировка по дате последнего доступа к файлу.
9/
-C
Вывод содержимого каталога в несколько столбцов. Устанавливается по умолчанию при выводе на терминал.
-i
Для каждого файла выводится номер индексного дескриптора (уникальный номер файла).
-f
Вывод не сортируется, т.е. порядок вывода соответствует порядку файлов в каталоге.
Примеры вывода команды ls с различными ключами представлены на рис. 4.4 – 4.7.
Рис. 4.4. Вывод команды ls с ключом -a
Рис. 4.5. Вывод команды ls с ключом -1(цифра 1)
Рис. 4.6. Вывод команды ls с ключом -F
Наиболее полный формат вывода обеспечивается при указании ключа –l (английская буква “эль малое”) (рис. 4.7).
Рис. 4.7. Вывод команды ls с ключом –l(английская буква “эль малое”)
Рассмотрим поля строки вывода в полном формате.
Первое поле в этой строке отражает права доступа к файлу. Во втором поле строки вывода указано число ссылок на файл. Третье поле указывает на владельца файла, четвёртое поле указывает на группу, которая владеет этим файлом. Пятое поле — длина файла в байтах. Шестое поле — дата создания файла в формате (месяц, день, минуты, секунды). Последнее поле — это имя файла.
Тип файла и права доступа к нему для трех категорий пользователей, определенных в операционной системе Unix, указываются с помощью ряда односимвольных индикаторов.
Тип файла указывается с помощью символьного индикатора, размещенного в первой позиции поля. Этот индикатор может принимать одно из семи значений (табл. 4.2).
Таблица 4.2. Типы файлов Unix
символ
тип файла Unix
-
обычный файл;
d
каталог;
b
специальный файл блочного устройства; предназначен для работы с устройствами, обмен с которыми производится блоками, например, жесткие и гибкие диски;
c
специальный файл символьного устройства; предназначен для работы с устройствами, обмен с которыми производится посимвольно, например, принтер или стример;
p
FIFO-файл или именованный программный канал;
l
символическая связь (link); символическая связь - это особый файл, содержащий в качестве данных имя пути к файлу или каталогу, к которым перенаправляются все запросы;
s
контакт (socket); специальный тип файла, позволяющий организовать обмен данными с другими процессами, находящимися исключительно на локальном компьютере.
Следующие 9 символов строки вывода описывают права доступа к файлу для трех категорий пользователей: владельца файла; группу, которая владеет этим файлом; для всех остальных пользователей.
Права доступа к файлу для всех категорий пользователей указываются с помощью четырёх символов: символ r — сокращение от read (англ. читать), w — сокращение от write (англ. писать), символ x, означающий наличие прав на исполнение (англ. execute, исполнять) файла. Наличие каждого из указанных символов означает наличие соответствующего права в отношении файла. Если же вместо одного из символов стоит символ «-», то соответствующее права отсутствует. Каждый из индикаторов указывается строго на своем месте — сначала r, затем w и x.
Если необходимо получить информацию о каталоге, отличном от текущего, тогда нужно ввести в качестве параметра команды ls путь к этому каталогу. При этом можно в качестве параметра указать одно из зарезервированных системой имен, к которым относятся: / - слеш, . – точка, .. – две точки.
Символ «/» обозначает имя корневого каталога системы. Следовательно, команда ls / выведет на экран содержимое корневого каталога (рис. 4.8):
Рис. 4.8. Вывод содержимого корневого каталога
Символ «.» обозначает текущий каталог. В результате команды ls с этим параметром на экран будет выведено содержимое текущего каталога (стр. 4.9).
Рис. 4.9. Вывод содержимого текущего каталога
Использование в качестве параметра имени «..» заставляет команду ls вывести на экран имя текущего каталога
Рис. 4.10. Вывод наименования текущего каталога
Используя перенаправление вывода, результат работы команды ls можно записать в файл.
Пример. Вывести список файлов текущего каталога в полном формате и поместить результат в файл full_dir.txt. Затем вывести список объектов текущего каталога на экран. Результат выполнения перечисленных команд представлен на рис. 4.11.
Рис. 4.11. Пример создания файла с результатами работы команды ls