Управление файлами

Рекурсивный список каталогов в Linux?

Рекурсивный список каталогов в 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. Для этого добавьте путь к определенному каталогу, чтобы он отображался рекурсивно. Мы хотим рекурсивно перечислить все файлы и папки каталога «Документы», находящиеся в «домашнем» каталоге, с помощью обновленной ниже команды. На выходе отображаются все файлы и папки в папке «Документы» вместе с дополнительной информацией.

$ ls -lR / home / aqsayasin / Documents /

Список рекурсивно с помощью команды «Найти»

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

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

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

$ find / home / aqsayasin / Documents / -print

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

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

$ du -a / home / aqsayasin / Documents /

Рекурсивный список с помощью команды «tree»

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

$ tree / home / aqsayasin / Документы /

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

$ tree / home / aqsayasin /

Заключение

Мы испробовали все рекурсивные методы для рекурсивного перечисления каталогов и файлов, e.грамм., Флаг «-lR», команда поиска и печати, du и дерева

Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...
SuperTuxKart для Linux
SuperTuxKart - отличная игра, созданная для того, чтобы бесплатно познакомить вас с Mario Kart в вашей системе Linux. Играть в нее довольно сложно и в...
Учебник Battle for Wesnoth
Битва за Веснот - одна из самых популярных стратегических игр с открытым исходным кодом, в которую вы можете играть сейчас. Эта игра не только очень д...