Как работает команда ls в Linux
В системе на базе Linux или Unix ls — одна из самых полезных команд. По сути, он сообщает вам информацию о файлах и папках в вашей системе и чрезвычайно полезен, когда у вас есть доступ к серверу или компьютеру только через окно терминала. Давайте посмотрим, как это работает, и обсудим некоторые особенности ls, о которых вы, возможно, не знаете.
Синтаксис ls выглядит следующим образом:
ls [OPTIONS][FILE|FOLDER]
, где [OPTIONS] — необязательные настройки, а [FILE|FOLDER] — необязательная ссылка на файл или папку, информацию о которых мы хотим получить. Если мы наберем только ls, выведет список файлов и папок текущей папки.
Как использовать команду ls в Linux или Mac
В самом простом случае мы можем просто набрать ls в нашем окне терминала, чтобы получить список всех файлов и папок в папке, в которой вы сейчас находитесь. Если мы введем ls и нажмем Enter, мы получим что-то вроде этого, список все файлы и папки в этом месте:
backups lib lock mail opt run tmp cache local log named qmail spool www
Если мы хотим настроить таргетинг на определенный файл или папку, мы можем добавить его в конец команды ls. Например, приведенный ниже код возвращает содержимое папки Documents:
ls ~/Documents
Если файл или папка не существует, ls вернет следующую ошибку:
ls: file.extension: No such file or directory
Получение списка файлов с помощью команды ls в Linux или Mac
Чаще всего ls используется с опцией -l. Это предоставляет полный список всех папок и файлов вместе с их разрешениями, владельцами, пользователями и любыми системными ссылками. Например, запуск ls -l может вернуть что-то вроде этого:
drwxr-xr-x 2 root root 4096 Mar 4 06:43 backups drwxr-xr-x 19 root root 4096 Dec 14 01:02 cache drwxr-xr-x 59 root root 4096 Jul 9 2021 lib lrwxrwxrwx 1 root root 9 May 6 2020 lock -> /run/lock drwxrwxr-x 19 root syslog 4096 Mar 5 00:00 log lrwxrwxrwx 1 root root 4 May 6 2020 run -> /run drwxrwxrwt 9 root root 4096 Mar 5 03:25 tmp drwxr-xr-x 7 root root 4096 Nov 29 2020 www
В этом списке по порядку показаны права доступа к файлу, жесткие ссылки на файл, владелец, группа, размер файла, дата и время последнего изменения, а также имя папки вместе со всеми системными ссылками после символа ->.
Используя эту команду, мы можем легко получить представление о том, что содержит конкретный файл или папка. Если мы хотим увидеть и автора, мы можем написать:
ls -l --author
Рекурсивное получение всех файлов и папок с помощью команды ls
Также возможно получить все файлы и папки в папках, перечисленных с помощью ls. Для этого мы используем ls -R.
Примечание: это часто возвращает очень большое количество файлов и папок!
Если мы хотим получить все файлы и папки рекурсивно и в формате списка, мы можем объединить параметры и написать ls -lR:
ls -lR
Сортировка списка файлов вывода команды ls в Linux или Mac
Мы также можем сортировать вывод. Если бы мы хотели увидеть все наши файлы и папки, отсортированные, например, по размеру, мы могли бы использовать следующую команду:
ls -l --sort=размер
Точно так же мы можем сортировать по расширению, времени или версии — просто замените размер на единицу, чтобы изменить тип сортировки.
Ярлыки для сортировки
Также существуют ярлыки для сортировки:
Вместо —sort=size мы можем написать -S
Вместо —sort=extension мы можем написать -X
Вместо —sort=time мы можем написать -t
Вместо —sort=version мы можем написать -v
Это означает, что ls -l —sort=size можно просто записать как ls -lS.
Все эти методы сортировки сортируют либо по алфавиту, либо от высшего к низшему. Чтобы изменить порядок, добавьте -r к вашим параметрам. Например, список, отсортированный от наименьшего к наибольшему размеру, выглядит так:
ls -lSr
Вывод сведений о файлах, начинающихся с точки, с помощью команды ls
По умолчанию все записи, начинающиеся с . игнорируются при использовании ls. Если мы хотим их увидеть, нам нужно добавить опцию -a или —all:
ls -a
Форматирование вывода команды ls в Linux и Mac
Помимо -l для отображения длинного списка файлов и папок, доступны и другие параметры формата:
-x - по умолчанию, где файлы и папки разделены пробелами. -m - список через запятую. -l - длинный список файлов и папок. -1 - (как и в цифре 1) единый столбец файлов и папок. -C - файлы и папки разделены на столбцы по размеру экрана.