Является ли в Linux рекурсивным списком каталогов?

Is List Only Directories Recursively Linux



Слово рекурсивное относится к тому факту, что команды операционной системы Linux или Unix имеют дело с содержимым папок, и если в папке есть подпапки и документы, инструкция по-прежнему работает со всеми этими документами (рекурсивно). Возможно, у дочернего каталога есть собственный набор файлов и папок (например, большие папки) и т. Д. И т. Д. Вы будете использовать разные инструкции Linux для рекурсивного обхода каждой папки, прежде чем добраться до края указанной папки. На этом уровне инструкции Linux возвращаются к отключению дерева и повторяют процесс для всех существующих подпапок. В этом руководстве вы изучите все методы рекурсивного перечисления каталогов.

Примеры каталогов простых списков

Прежде всего, вы должны знать, как составить список всех каталогов вашей системы Linux с помощью простой команды list. Откройте терминал командной строки и попробуйте следующую команду ls ’, чтобы вывести список только каталогов. Он будет не только перечислять каталоги, но и общее количество подпапок и файлов, находящихся в них. В выходных данных отображаются папки с информацией об их владельце, группе, правах чтения и записи и дате создания папок.







$ ls -l



Чтобы вывести список всех каталогов и файлов в вашей системе Linux, вы должны использовать -la вместо простого -l в команде list. Следовательно, для этого выполните обновленную команду. Вывод показывает все файлы и папки вместе с дополнительной информацией.



$ ls -la





Чтобы просто перечислить каталоги без дополнительной информации, попробуйте следующую команду с флагом -d.

$ ls –d * /



Вы также можете использовать ту же команду с небольшими изменениями для вывода списка папок с дополнительной информацией. Вам просто нужно добавить флаг -l в эту команду следующим образом:

$ ls –l –d * /

Чтобы проверить только общее количество файлов в конкретном домашнем каталоге, попробуйте в оболочке команду, представленную ниже. Вы получите общее количество файлов в вашей операционной системе Linux.

$ ls –l | egrep –v ‘^ d’

Пример рекурсивного листинга каталогов

В системах Linux доступны различные типы рекурсивных команд, которые можно использовать для рекурсивного перечисления каталогов. Чтобы понять каждый из них по отдельности, предположим, что в вашем каталоге Linux есть 5 файлов с именем Documents.

Список рекурсивно с использованием флага -lR

Использование флага -lR в вашем запросе для рекурсивного перечисления всех каталогов вашей системы Linux - это первый способ сделать это. После выполнения приведенной ниже команды list будут перечислены все папки и их подпапки вместе с их бонусными данными, как показано в выходных данных.

$ ls -lR

Давайте просто рекурсивно перечислим все файлы или папки из определенной папки или каталога вашей системы Linux. Для этого добавьте путь к определенному каталогу, чтобы он отображался рекурсивно. Мы хотим рекурсивно перечислить все файлы и папки каталога Documents, находящиеся в домашнем каталоге, с помощью обновленной ниже команды. На выходе отображаются все файлы и папки в папке «Документы» вместе с дополнительной информацией.

$ ls –lR / home / aqsayasin / Documents /

Список рекурсивно с помощью команды поиска

Дайте себе понять, что не все системы Linux, например macOS, Unix-подобные ОС, могут использовать -R для вывода списка каталогов. В этом случае для удовлетворения наших потребностей доступны другие команды, а именно команды поиска и печати. В этой команде мы дадим путь к папке вместе с использованием команды -ls. Когда в команде используется -ls, это означает, что он также покажет дополнительную информацию о постоянных файлах и папках в определенном каталоге. Попробуйте указанную ниже команду в оболочке, чтобы рекурсивно перечислить все файлы и папки в каталоге Documents.

$ find / home / aqsayasin / Documents / -print -ls

Теперь вам нужно попробовать ту же самую инструкцию в оболочке с небольшими изменениями. Мы не будем использовать в этой команде флаг -ls, чтобы перестать показывать дополнительную информацию о файлах. Выполните приведенный ниже запрос в оболочке, и вы получите отображаемый результат.

$ find / home / aqsayasin / Documents / -print

Список рекурсивно с помощью команды -du

Давайте посмотрим на другой пример, чтобы рекурсивно перечислить файлы или каталоги с помощью другого нового метода. На этот раз мы будем использовать команду -du для достижения нашей цели. Эта команда содержит флаг -a. Наряду с флагами мы также должны указать расположение каталога. Давайте выполним приведенную ниже инструкцию в оболочке терминала, чтобы рекурсивно перечислить все папки или файлы каталога Documents. Вывод показывает 5 записей для него, как показано ниже. Вы можете видеть, что эта команда также показывает количество укусов, находящихся в каждом файле.

$ du –a / home / aqsayasin / Documents /

Список рекурсивно с использованием древовидной команды

И последнее, но не менее важное: у нас есть очень простой и легкий в использовании метод древовидной команды для рекурсивного перечисления файлов или папок. Мы пока не будем использовать в этой команде какие-либо флаги. Вы должны указать местоположение каталога вместе с деревом ключевых слов. Давайте посмотрим на это с помощью приведенной ниже команды. Выходные данные показывают выходные данные разветвленного типа в виде дерева каталога Documents. На выходе он показывает 0 каталогов и 5 файлов.

$ tree / home / aqsayasin / Documents /

Давайте попробуем использовать ту же древовидную команду в другом месте. На этот раз мы рекурсивно перечисляем папки домашнего каталога пользователя aqsayasin. На выходе показаны ветви папки Home, в которых всего 14 различных папок, подпапок и 5 файлов.

$ tree / home / aqsayasin /

Заключение

Мы испробовали все рекурсивные методы для рекурсивного перечисления каталогов и файлов, например, -lR flag, find and print, du и tree command