- Команда Ls в Linux (список файлов и каталогов)
- Как использовать команду ls
- Формат длинных списков
- Показать скрытые файлы
- Сортировка вывода
- Рекурсивный список подкаталогов
- Выводы
- Как вывести имена файлов из директории без путей?
- Команда ls
- Опции
- Примеры использования команды ls
- Подробный список файлов
- Показать скрытые файлы
- Понятный размер файлов
- Обозначить директории
- Список файлов в одну колонку
- Вывести только файлы с определенным расширением
- Файлы, начинающиеся на определенную букву
- Список файлов с сортировкой по времени
- Сортировка по размеру
- Список файлов, включая вложенные директории
Команда Ls в Linux (список файлов и каталогов)
ls — одна из основных команд, которую должен знать любой пользователь Linux.
Команда ls выводит список файлов и каталогов в файловой системе и показывает подробную информацию о них. Это часть пакета основных утилит GNU, который установлен во всех дистрибутивах Linux.
Эта статья покажет вам, как использовать команду ls, на практических примерах и подробных объяснениях наиболее распространенных параметров ls.
Как использовать команду ls
Синтаксис команды ls следующий:
При использовании без параметров и аргументов ls отображает список имен всех файлов в текущем рабочем каталоге :
Файлы перечислены в алфавитном порядке в столько столбцов, сколько может поместиться на вашем терминале:
cache db empty games lib local lock log mail opt run spool tmp
Чтобы вывести список файлов в определенном каталоге, передайте путь к каталогу в качестве аргумента команде ls . Например, чтобы отобразить содержимое каталога /etc , введите:
Вы также можете передать несколько каталогов и файлов, разделенных пробелом:
Если пользователь, с которым вы вошли в систему, не имеет прав на чтение каталога, вы получите сообщение о том, что ls не может открыть каталог:
ls: cannot open directory '/root': Permission denied
У команды ls есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые варианты.
Формат длинных списков
По умолчанию вывод команды ls показывает только имена файлов и каталогов, что не очень информативно.
Параметр -l (нижний регистр L) указывает ls печатать файлы в формате длинного списка.
Когда используется формат длинного списка, вы можете увидеть следующую информацию о файле:
- Тип файла.
- Права доступа к файлу.
- Количество жестких ссылок на файл.
- Владелец файла.
- Файловая группа.
- Размер файла.
- Дата и время.
- Имя файла.
-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts
Давайте объясним самые важные столбцы вывода.
Первый символ показывает тип файла. В этом примере первый символ — , что указывает на обычный файл. Значения для других типов файлов следующие:
- — — Обычный файл.
- b — Заблокировать специальный файл.
- c — Символьный специальный файл.
- d — Справочник.
- l — символическая ссылка.
- n — Сетевой файл.
- p — ФИФО.
- s — Розетка.
Следующие девять символов показывают права доступа к файлу. Первые три символа предназначены для пользователя, следующие три — для группы, а последние три — для остальных. Вы можете изменить права доступа к файлу с помощью команды chmod . Символ разрешения может принимать следующие значения:
- r — Разрешение на чтение файла.
- w — Разрешение на запись в файл.
- x — Разрешение на выполнение файла.
- s — бит setgid .
- t — sticky бит.
В нашем примере rw-r—r— означает, что пользователь может читать и записывать файл, а группа и другие пользователи могут только читать файл. Цифра 1 после символов разрешения — это количество жестких ссылок на этот файл.
Следующие два поля root root показывают владельца файла и группу, за которыми следует размер файла ( 337 ), показанный в байтах. Используйте параметр -h если вы хотите печатать размеры в удобочитаемом формате. Вы можете изменить владельца файла с помощью команды chown .
Oct 4 11:31 — дата и время последнего изменения файла.
Последний столбец — это имя файла.
Показать скрытые файлы
По умолчанию команда ls не отображает скрытые файлы. В Linux скрытый файл — это любой файл, который начинается с точки ( . ).
Чтобы отобразить все файлы, включая скрытые, используйте параметр -a :
drwxr-x--- 10 linuxize linuxize 4096 Feb 12 16:28 . drwxr-xr-x 18 linuxize linuxize 4096 Dec 26 09:21 .. -rw------- 1 linuxize linuxize 1630 Nov 18 2017 .bash_history drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 bin drwxr-xr-x 2 linuxize linuxize 4096 Jul 20 2018 Desktop drwxr-xr-x 4 linuxize linuxize 4096 Dec 12 2017 .npm drwx------ 2 linuxize linuxize 4096 Mar 4 2018 .ssh
Сортировка вывода
Как мы уже упоминали, по умолчанию команда ls перечисляет файлы в алфавитном порядке.
Параметр —sort позволяет сортировать вывод по расширению, размеру, времени и версии:
- —sort=extension (или -X ) — отсортировать в алфавитном порядке по расширению.
- —sort=size (или -S ) — сортировать по размеру файла.
- —sort=time (или -t ) — сортировать по времени модификации.
- —sort=version (или -v ) — естественный вид номеров версий.
Если вы хотите получить результаты в обратном порядке сортировки, используйте параметр -r .
Например, чтобы отсортировать файлы в каталоге /var по времени модификации в обратном порядке, вы должны использовать:
Стоит отметить, что команда ls не показывает общее пространство, занятое содержимым каталога. Чтобы узнать размер каталога , используйте команду du .
Рекурсивный список подкаталогов
Параметр -R указывает команде ls рекурсивно отображать содержимое подкаталогов:
Выводы
Команда ls отображает информацию о файлах и каталогах.
Для получения дополнительной информации о ls посетите страницу GNU Coreutils или введите man ls в свой терминал.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как вывести имена файлов из директории без путей?
просто вывести имена файлов из директории в файл ,чисто имена.
А что ls выводит с путями? Что ты имеешь в виду?
или только файлов? find -maxdepth 1 -type f
Я не понимаю, что тебе нужно, уточни.
2ТС: если мешают ./ вначале имён файлов (при использовании find):
find -maxdepth 1 -type f -exec basename <> \; 2> /dev/null
find . -printf ‘%f\n’
вместо -exec .
ls же. А чтобы без каталогов выше писали с find или grep.
serge@delldebian:~$ ls -p / > /tmp/file.txt serge@delldebian:~$ cat /tmp/file.txt bin/ boot/ dev/ etc/ home/ initrd.img lib/ lib32/ lib64/ lost+found/ media/ mnt/ opt/ proc/ root/ run/ sbin/ selinux/ srv/ sys/ tmp/ usr/ var/ vmlinuz webmin-setup.out
эм.. быть может ls -p | grep -v /?
Я думал, что можно создавать файлы со /.. Но
/tmp $ touch a\/b touch: невозможно выполнить touch для «a/b»: Нет такого файла или каталога
Кроме алеша и аски-нуля всё можно. Остальное зависит от ФС .
Команда ls
директория — задает директорию, содержимое которой нужно вывести. Если вместо директории указать файл, то будет выведена информация о данном файле.
Если директория не указана, то выводится содержимое текущей директории.
Опции
Если имя файла содержит непечатаемые символы, то выводить их как Esc-последовательность в стиле языка C (например, \n \t )
Задает в каком формате выводить размер файла, например, в килобайтах, мегабайтах или гигабайтах. Вместо SIZE нужно указать обозначение, например:
SIZE может принимать значения K, M, G, T, P, E, Z, Y (используется множитель 1024) или KB, MB, GB. (используется множитель 1000).
Не выводить файлы, имя которых оканчивается на знак тильды ~ (такие файлы обычно создаются текстовыми редакторами в качестве резервной копии исходного файла).
Сортировать файлы по времени последнего изменения. Новые файлы располагаются сверху.
При использовании с опциями -lt : выводить время последнего изменения и сортировать по этому времени.
При использовании с опцией -l : выводить время последнего изменения и сортировать по имени.
Добавить специальные символы к именам файлов, которые показывают, что это за файл. Возможные символы:
- / — директория
- * — исполняемый файл.
- @ — символическая ссылка.
- = — сокет.
- > — door.
- | — именованная очередь FIFO (pipe).
Формат вывода. Определяет как выводить список файлов. Вместо длинной записи —format=WORD можно использовать короткие опции, например, -x . Возможные значения WORD (в скобках) и соответсвующие короткие опции:
- -x (across)
- -m (commas) — через запятую.
- -x (horizontal)
- -l (long) — подробная информация о файлах.
- -1 (single-column) — в одну колонку.
- -l (verbose)
- -C (vertical)
При использовании совместно с опцией -l или -ls выводить размер файлов в понятном формате (например, 105K, 12M).
То же, что и опция -h (см. предыдущую опцию), но при расчете размера использовать множитель 1000 вместо 1024.
Выводить информацию о файлах, на которые указывают символические ссыли, вместо информации о самих ссылках.
Скрывать файлы, имена которых соответствуют шаблону. Шаблон может быть вида: *.txt , abcd* , и так далее.*.cpp,*.h>
Добавлять к именам файлов символ, который обозначает тип файла (см. также опцию -F ).
WORD может принимать значения: none (ничего не добавлять), slash ( -p ), file-type ( —file-type ), classify ( -F )
Не выводить файлы, имена которых соответствуют шаблону. Например, скрыть файлы, начинающиеся на букву A: ls -I ’A*’
Для символических ссылок выводить информацию о файле, на который указывает ссылка, но не о самой ссылке.
Заключить имена файлов в кавычки. WORD определяет стиль кавычек. Может принимать значения: literal , locale , shell , shell-always , shell-escape , shell-escape-always , c , escape
Если указана опция —sort=time , то выполняется сортировка по соответствующему времени (новые файлы располагаются сверху).
Определяет формат вывода времени.
При использовании с опцией -l : STYLE может принимать значения full-iso , long-iso , iso , locale , или +FORMAT.
FORMAT задается в формате ’date’.
Если FORMAT задан в виде FORMAT1 FORMAT2 , тогда FORMAT1 применяется к старым файлам, а FORMAT2 к более новым.
При использовании совместно с опциями -lt : сортировать по времени последнего доступа к файлу.
При использовании с опцией -l : сортировать по имени, но выводить время последнего доступа к файлу.
В остальных случаях сортировать по времени последнего доступа к файлу.
Сортировать по номеру версии файлов. Например, если файлы имеют имена myfile-1.txt, myfile-2.txt и так далее. В данном случае в именах файлов автоматически определяется версия и по ней осуществляется сортировка.
Примеры использования команды ls
Рассмотрим несколько примеров использования команды ls.
Подробный список файлов
Выведем содержимое текущей директории, в которой мы в данной момент находимся. Используем опцию -l , чтобы выводить подробную информацию о файлах.
Если необходимо вывести содержимое другой директории, то нужно указать путь до директории, например:
Показать скрытые файлы
По умолчанию команда ls не показывает скрытые файлы. Что их показать, используется опция -a :
Понятный размер файлов
Вывести размер файлов в понятном формате (опция -h ):
Обозначить директории
У команды ls есть очень полезная опция -F , про которую не все знают. Она добавляет к именам файлов дополнительные обозначения, по которым сразу понятно что это за файл. Например, для директорий она добавляет символ /, и в списке файлов сразу видно где директории а где обычные файлы.
Список файлов в одну колонку
Вывести список в одну колонку:
Вывести только файлы с определенным расширением
Выведем файлы только с расширением .txt :
Выведем файлы с определенными расширениями ( .html , .php и .txt ):
Файлы, начинающиеся на определенную букву
Показать только файлы, имена которых начинаются на одну из букв указанного множества (a, d, u и x):
Список файлов с сортировкой по времени
Выведем список файлов с сортировкой по времени последнего изменения файла. Более свежие файлы располагаются сверху.
Сортировка по времени, но в обратном порядке:
Сортировка по размеру
Отсортируем файлы по размеру. Большие файлы располагаются первыми.
Список файлов, включая вложенные директории
Выведем список файлов, включая все файлы внутри вложенных директорий (рекурсивный обход всех директорий):