Получение списка содержимого каталога без использования команды ls
Команда "ls
" — наиболее часто используемая команда для вывода списка файлов и каталогов в каталоге в Linux и Unix-подобных системах. Однако существуют и другие способы отобразить содержимое каталога без использования команды ls
.
Как вы, возможно, знаете, существует множество программ, альтернативных наиболее популярным и широко используемым существующим программам Linux. Мы уже писали о хороших альтернативах команде 'top
', альтернативах команде 'du
' и . альтернативы страницам man
.
Сегодня в этом уроке мы увидим 11 альтернативных способов вывода содержимого каталога без использования команды ls
в Linux.
Получение списка содержимого каталога без использования команды ls
Обычно большинство пользователей Linux используют команду ls
для вывода списка файлов и каталогов в каталоге. Например, мы можем использовать следующую команду для отображения содержимого каталога с именем ostechnix
.
ls ostechnix/
Получение списка содержимого каталога с помощью команды ls
Вот как мы перечисляем файлы и каталоги. Однако есть способы сделать это. На данный момент я знаю только следующие 11 методов. Если я встречу какой-либо другой лучший метод, я тоже добавлю их. Кроме того, если вы знаете другие способы сделать это, сообщите нам об этом в разделе комментариев ниже.
Рекомендуется прочитать:
- Как автоматически отображать содержимое каталога при каждом переходе в него в Linux
1. Перечислите файлы с помощью команды echo
.
Команда echo
— это наиболее часто используемая встроенная команда, которая используется в сценариях оболочки и пакетных программах для печати заданных аргументов. Вы можете передать любой текст/строку в качестве аргумента, и команда echo отобразит их в стандартном выводе или файле. Эта команда предназначена не только для печати заданных аргументов, но также может использоваться для вывода списка файлов.
Чтобы просмотреть файлы, используемые в текущем каталоге, с помощью команды echo
, просто введите:
echo *
Получение списка файлов с помощью команды echo
Чтобы перечислить все файлы на один уровень ниже, используйте эту команду:
echo */*
Чтобы просмотреть скрытые файлы, запустите:
echo * .*
Более подробную информацию можно найти на страницах руководства.
man echo
Как видите, команда echo
отображает только файлы, а не каталоги. Нет проблем, следующие методы описывают, как составить список файлов и каталогов. Читай дальше.
2. Перечислите файлы и каталоги с помощью команды printf
.
Команда printf
используется для форматирования и печати текста. Эта команда распечатает заданные аргументы в соответствии с заданным форматом или выполнит в соответствии с заданным параметром.
Чтобы просмотреть содержимое текущего каталога с помощью команды printf
, выполните:
printf '%s\n' *
Получение списка файлов и каталогов с помощью команды printf
В отличие от команды echo
, команда printf
отображает как файлы, так и каталоги.
Более подробную информацию можно найти на страницах руководства.
man printf
3. Перечислите файлы и каталоги с помощью команды dir
.
Команда dir
— это еще одна команда Linux для отображения содержимого каталога. Его часто считают эквивалентом Windows, но в Linux он работает практически так же.
Чтобы просмотреть содержимое текущего каталога, запустите:
dir
Получение списка файлов и каталогов с помощью команды dir
Чтобы просмотреть содержимое определенного каталога, просто передайте его путь в качестве аргумента, как показано ниже.
dir /home/sk/ostechnix
Чтобы просмотреть все содержимое, включая скрытые файлы:
dir -a
Обратитесь к справочным страницам, чтобы узнать больше о команде dir
.
man dir
4. Перечислите файлы и каталоги, используя команду find
.
Команда find
используется для поиска файлов в иерархии каталогов. Не только для поиска файлов мы также можем использовать команду find
для вывода списка содержимого каталога, как показано ниже.
find -maxdepth 1
Или,
find .
Получение списка файлов и каталогов с помощью команды find
Как вы можете видеть, первая команда выводит список всех файлов и каталогов на один уровень ниже в текущем каталоге, тогда как вторая команда рекурсивно перечисляет все файлы и каталоги.
Вы также можете перечислить содержимое определенного каталога.
find dir1/
Рекомендуется к прочтению:
- Как найти файлы на основе их разрешений в Linux
- Как найти файлы размером больше или меньше X в Linux
- Как найти и удалить файлы, в именах которых содержится определенный текст
- Как найти самый старый файл в дереве каталогов в Linux
- Как найти и скопировать файлы определенного типа из одного каталога в другой в Linux
- Как найти и удалить файлы старше X дней в Linux
5. Перечислите файлы и каталоги с помощью команды stat
.
Команда stat
используется для отображения информации о файле и файловой системе. Используя эту команду, мы можем найти такие свойства файла, как размер, разрешения, даты создания и доступа, а также другие.
Чтобы просмотреть файлы и каталоги с помощью команды stat
,
stat -c '%A %n' *
Получение списка файлов и каталогов с помощью команды stat
Как видите, команда stat
выводит не только содержимое текущего каталога, но и разрешения. Это полезно, если вы хотите просмотреть содержимое каталога, включая разрешения.
Дополнительную информацию о команде stat
можно найти на страницах руководства.
man stat
6. Перечислите файлы и каталоги с помощью команды grep
.
Команда grep
используется для поиска текстовых файлов с помощью регулярных выражений. Некоторое время назад мы написали подробное руководство по использованию grep. Перейдите по следующей ссылке, чтобы узнать больше о команде grep и ее вариантах.
Учебное пособие по команде Grep с примерами для начинающих
Чтобы просмотреть содержимое каталога с помощью команды grep
, просто запустите:
grep -l '.*' ./*
Получение списка файлов и каталогов с помощью команды grep
7. Перечислите файлы и каталоги с помощью команды lsattr
.
Команда lsattr
используется для вывода списка атрибутов файлов и каталогов в Linux.
Чтобы просмотреть файлы и каталоги в текущем рабочем каталоге, используйте команду lsattr
:
lsattr ./*
Получение списка файлов и каталогов с помощью команды lsattr
Как вы видите в выводе, команда lsattr
отображает содержимое на один уровень ниже. Другими словами, он не будет отображать подкаталоги, их содержимое и скрытые файлы.
Подробную информацию о команде lsattr
можно найти на страницах руководства.
man lsattr
8. Перечислите файлы и каталоги с помощью команды getfacl
setfacl
и getfacl
— наиболее полезные и важные команды, которые должен знать каждый системный администратор, чтобы установить Контроль доступа. списки (ACL) файлов и каталогов.
Чтобы просмотреть список файлов и каталогов в текущем каталоге, просто запустите:
getfacl ./*
Получение списка файлов и каталогов с помощью команды getfacl
Что мне больше всего нравится в этой команде, так это то, что она не только перечисляет содержимое каталога, но и другие полезные детали, такие как:
- владелец файла/каталога,
- группа, которая имеет к нему доступ,
- права доступа для владельца, группы и других.
9. Перечислите файлы и каталоги, используя цикл for
Другой способ просмотреть содержимое каталога — использовать цикл for
. Я протестировал это в BASH, и все работало нормально, как и ожидалось.
for i in *; do echo $i; done
Получение списка файлов и каталогов с помощью цикла
Как вы видите в приведенном выше выводе, мы можем просмотреть содержимое текущего каталога, используя цикл for
.
10. Список файлов и каталогов с помощью редактора Vim
Редактор Vim предназначен не только для просмотра и редактирования файлов. Его также можно использовать для вывода списка файлов и каталогов. Как вы, возможно, уже знаете, все в Linux представляет собой файл. С технической точки зрения каталог — это файл, содержащий список файлов и/или подкаталогов.
Чтобы просмотреть файлы и каталоги текущего каталога с помощью редактора Vim, используйте следующую команду:
vim .
Обратите внимание на точку (.) в конце.
Чтобы просмотреть содержимое определенного каталога, выполните:
vim <path-to-dir>
Например:
vim ostechnix/
Получение списка файлов и каталогов с помощью редактора Vim
Просто используйте стрелки ВВЕРХ/ВНИЗ для перемещения по списку. Чтобы просмотреть содержимое подкаталога, просто наведите на него курсор мыши и нажмите ENTER.
Рекомендуется прочитать:
- Как просмотреть содержимое архива или сжатого файла, не распаковывая его
- Как редактировать несколько файлов с помощью редактора Vim
- PacVim – игра с интерфейсом командной строки для изучения команд Vim
- Как закомментировать несколько строк одновременно в редакторе Vim
- Как использовать редактор Vim для ввода текста где угодно
- Как использовать функцию проверки орфографии в текстовом редакторе Vim
11. Перечислите файлы с помощью команды tree
.
Команда tree
используется для просмотра содержимого каталога (и его подкаталогов) в древовидном формате.
Если вы запустите команду дерева без каких-либо параметров, она отобразит все файлы и папки (и подпапки) текущего рабочего каталога.
tree
Чтобы просмотреть содержимое каталога на один уровень ниже, выполните:
tree -L 1
Более подробную информацию о команде tree
можно найти в следующем руководстве.
- Как просмотреть древовидную структуру каталогов в Linux
Заключение
И это все на данный момент. На данный момент я не знаю практических вариантов использования этих методов. Команда ls
предустановлена почти во всех Unix-подобных операционных системах, поэтому ее можно использовать для удобного отображения содержимого каталога. На тот случай, если команда ls
недоступна в вашей системе, используйте эти альтернативные способы ls без команды «ls
».