Рекурсивно отображать список файлов и каталогов в каталоге var log

Обновлено: 21.11.2024

В одной из наших статей о выводе файлов в список с помощью популярной команды ls мы рассказали, как выводить список и сортировать файлы по времени последнего изменения (дате и времени) в Linux. В этой короткой полезной статье мы представим несколько полезных параметров команды ls, чтобы получить список всех файлов в определенном каталоге и отсортировать их по размеру файла в Linux.

Чтобы вывести список всех файлов в каталоге, откройте окно терминала и выполните следующую команду. Обратите внимание, что при вызове ls без каких-либо аргументов будут перечислены файлы в текущем рабочем каталоге.

В следующей команде флаг -l означает длинный список, а -a указывает ls вывести список всех файлов, включая (.) или скрытые файлы. Чтобы не показывать. и .. файлы, используйте параметр -A вместо -a .

Чтобы вывести список всех файлов и отсортировать их по размеру, используйте параметр -S. По умолчанию выходные данные отображаются в порядке убывания (от большего размера к меньшему).

Вы можете вывести размеры файлов в удобочитаемом формате, добавив параметр -h, как показано ниже.

Чтобы отсортировать в обратном порядке, добавьте флаг -r следующим образом.

Кроме того, вы можете рекурсивно перечислить подкаталоги, используя параметр -R.

Вы также найдете полезными следующие статьи по теме:

Если у вас есть какой-либо другой способ перечислить файлы, упорядоченные по размерам в Linux, поделитесь с нами или у вас есть вопросы или мысли об этом руководстве? Если да, свяжитесь с нами через форму обратной связи ниже.

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

2 мысли о «Как составить список всех файлов, упорядоченных по размеру в Linux»

Для тех из нас, кто застрял в среде UNIX, есть ли другие варианты? Спасибо, и я понимаю, что это просто означает открыть терминал и попробовать то, что вы описали.

На самом деле параметры ls должны быть одинаковыми. Спасибо за отзыв.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

В Linux команда ls -l выводит список файлов и каталогов по определенному пути с указанием их имен, дат и размеров (использование диска). Первое, что вы заметите, используя эту команду, это то, что размер каталогов всегда отображается как 4096 байт (или 4,0 КБ, если вы используете ls -lh ), даже если они содержат файлы размером более 4 КБ. Причина в том, что ls возвращает метаданные для каталогов, а не фактический размер.

Какой самый короткий и простой способ получить размер каталога в Linux, спросите вы? Чтобы получить общий размер каталога в Linux, вы можете использовать команду du (disk-usage).

В этой статье мы рассмотрим некоторые из наиболее распространенных вариантов использования команд du, в том числе du -sh , du -ch и du --max-depth .

Получение размера каталога в Linux с помощью du

Полное описание и список аргументов команды du см. в man du .

Если мы введем du без каких-либо аргументов, будут рекурсивно перечислены все имена и размеры каталогов для текущего рабочего каталога и всех подкаталогов:

Получить размер текущего рабочего каталога

Чтобы получить размер только текущего рабочего каталога, а не подкаталогов, мы можем использовать du -s или du ​​--summarize :

Мы можем добавить параметр -h, чтобы получить размер в более удобном для человека формате:

Мы также можем использовать du с параметром $PATH, чтобы получить размер каталога, расположенного не в текущем рабочем каталоге:

Обратите внимание, что вам нужно будет использовать его с привилегиями sudo для некоторых каталогов, иначе вы получите ошибку «Отказано в доступе».

Получить размер подкаталогов первого уровня

Чтобы получить размер подкаталогов первого уровня, а также общий размер каталога пути:

-c или --total возвращает общий размер пути (всего 11G). * перечисляет все подкаталоги первого уровня в каталоге /var/. Мы также можем добавить --exclude, чтобы исключить любой каталог:

Обратите внимание, что исключение библиотеки также влияет на общий размер (всего 3,2 ГБ). Это также эквивалентно sudo du /var/ -h --exclude=lib --max-depth=1

Бесплатная электронная книга: Git Essentials

Ознакомьтесь с нашим практическим руководством по изучению Git, включающим передовые практики, общепринятые стандарты и памятку. Перестаньте гуглить команды Git и на самом деле изучите их!

--max-depth=N вернет все уровни подкаталогов, которые равны или меньше числа N . Установка --max-depth в 1 возвращает первый уровень, 2 для второго и т. д.

Получить размер всех подкаталогов

Чтобы рекурсивно получить все подкаталоги /var/ , вы можете использовать sudo du /var/ -h . Или вы можете передать --max-depth число, которое, как вы уверены, больше или равно максимальному уровню глубины подкаталога: sudo du /var/ -h --max-depth=999 .

Второй вариант скорее обходной, чем самый эффективный.

Получить размер каталога в Linux с помощью дерева --du -h

tree — это рекурсивная программа для вывода списка каталогов, которая будет отображать каталоги и файлы в древовидном формате. Обратите внимание, что дерево не установлено по умолчанию. Для Debian/Ubuntu мы можем установить дерево, запустив sudo apt install tree .

После завершения установки мы используем команду дерева, чтобы перечислить имена и размеры всех каталогов и файлов по определенному пути в древовидном формате:

Заключение

В этой статье мы узнали, как получить размеры каталогов в Linux. Вы можете использовать эти команды на удаленных компьютерах Linux, серверах и/или компьютерах Linux с графическим интерфейсом или без него.

В большинстве случаев достаточно команды du. Он также имеет то преимущество, что устанавливается по умолчанию. С другой стороны, команда tree предоставляет более наглядный и подробный пользовательский интерфейс для отображения практически тех же результатов, что делает ее мощной альтернативой du .

Боладжи Айодеджи

С момента создания Unix в 1970-х годах многие операционные системы использовали его в качестве основы. Многие из этих операционных систем потерпели неудачу, в то время как другие преуспели.

Linux — одна из самых популярных операционных систем на базе Unix. Это открытый исходный код, который используется по всему миру во многих отраслях.

Одной из замечательных особенностей операционной системы Linux является интерфейс командной строки (CLI), который позволяет пользователям взаимодействовать со своим компьютером из оболочки. Оболочка Linux представляет собой среду REPL (чтение, оценка, печать, цикл), в которой пользователи могут вводить команду, а оболочка запускает ее и возвращает результат.

Команда ls — это одна из многих команд Linux, которые позволяют пользователю просматривать файлы или каталоги из интерфейса командной строки.

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

Предпосылки

  • Компьютер с каталогами и файлами
  • Установите один из дистрибутивов Linux
  • Базовые знания о навигации по интерфейсу командной строки.
  • Улыбка на вашем лице :)

Команда Linux ls

Команда ls используется для вывода списка файлов или каталогов в Linux и других операционных системах на базе Unix.

Точно так же, как вы перемещаетесь в своем Проводнике файлов или Finder с помощью графического интерфейса, команда ls по умолчанию позволяет вам вывести список всех файлов или каталогов в текущем каталоге, а также далее взаимодействовать с ними через командную строку.

Запустите терминал и введите ls, чтобы увидеть это в действии:

Как составить список файлов в каталоге с параметрами

Команда ls также принимает некоторые флаги (известные также как параметры), которые представляют собой дополнительную информацию, изменяющую способ отображения файлов или каталогов в вашем терминале.

Другими словами, флаги изменяют работу команды ls:

PS: слово «содержимое», используемое в статье, относится к перечисленным файлам и каталогам, а не к фактическому содержимому файлов/каталогов ?

Список файлов в текущем рабочем каталоге

Введите команду ls, чтобы просмотреть содержимое текущего рабочего каталога:

Список файлов в другом каталоге

Введите команду ls [здесь путь к каталогу], чтобы просмотреть содержимое другого каталога:

Список файлов в корневом каталоге

Введите команду ls /, чтобы просмотреть содержимое корневого каталога:

Список файлов в родительском каталоге

Введите команду ls .., чтобы отобразить содержимое родительского каталога на один уровень выше. Используйте ls ../.. для содержимого двумя уровнями выше:

Список файлов в домашнем каталоге пользователя (/home/user)

Введите команду ls ~, чтобы просмотреть содержимое домашнего каталога пользователя:

Список только каталогов

Введите команду ls -d */, чтобы вывести список только каталогов:

Список файлов с подкаталогами

Введите команду ls *, чтобы просмотреть содержимое каталога с его подкаталогами:

Рекурсивный список файлов

Введите команду ls -R, чтобы вывести список всех файлов и каталогов с соответствующими подкаталогами до последнего файла:

Если у вас много файлов, это может занять очень много времени, так как каждый отдельный файл в каждом каталоге будет распечатан. Вместо этого вы можете указать каталог для запуска этой команды, например: ls Downloads -R

Список файлов с их размерами

Введите команду ls -s (s в нижнем регистре), чтобы отобразить файлы или каталоги с их размерами:

Список файлов в длинном формате

Введите команду ls -l, чтобы просмотреть содержимое каталога в формате таблицы со столбцами, включая:

Список файлов в длинном формате с удобочитаемыми размерами файлов

Введите команду ls -lh, чтобы вывести список файлов или каталогов в том же формате таблицы, что и выше, но с другим столбцом, представляющим размер каждого файла/каталога:

Обратите внимание, что размеры указаны в байтах (Б), мегабайтах (МБ), гигабайтах (ГБ) или терабайтах (ТБ), если размер файла или каталога превышает 1024 байта.

Список файлов, включая скрытые файлы

Введите команду ls -a, чтобы вывести список файлов или каталогов, включая скрытые файлы или каталоги. В Linux все, что начинается с . считается скрытым файлом:

Список файлов в длинном формате, включая скрытые файлы

Введите команду ls -l -a или ls -a -l или ls -la или ls -al, чтобы вывести список файлов или каталогов в табличном формате с дополнительной информацией, включая скрытые файлы или каталоги:

Список файлов и сортировка по дате и времени

Введите команду ls -t, чтобы вывести список файлов или каталогов и отсортировать их по дате последнего изменения в порядке убывания (от большего к меньшему).

Вы также можете добавить флаг -r, чтобы изменить порядок сортировки, например: ls -tr :

Список файлов и сортировка по размеру файла

Введите команду ls -S (S в верхнем регистре), чтобы вывести список файлов или каталогов и отсортировать их по размеру в порядке убывания (от большего к меньшему).

Вы также можете добавить флаг -r, чтобы изменить порядок сортировки, например: ls -Sr :

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

Введите команду ls > output.txt, чтобы напечатать вывод предыдущей команды в файл output.txt. Вы можете использовать любой из рассмотренных ранее флагов, например -la — ключевым моментом здесь является то, что результат будет выводиться в файл, а не заноситься в командную строку.

Затем вы можете использовать файл по своему усмотрению или записать содержимое файла с помощью cat output.txt :

.

Существует множество других команд и комбинаций, которые вы можете изучить, чтобы составить список файлов и каталогов в соответствии с вашими потребностями. Следует помнить одну вещь: возможность одновременного объединения нескольких команд.

Представьте, что вы хотите составить список файлов в длинном формате, включая скрытые файлы, и отсортировать их по размеру. Это будет команда ls -alS , представляющая собой комбинацию ls -l , ls -a и ls -S .

Если вы забыли какую-либо команду или не знаете, что делать, вы можете запустить ls --help или man ls, которые отобразят руководство со всеми возможными параметрами для команды ls:

В Linux мы используем команду ls для отображения списка файлов, т. е. списка файлов и каталогов в каталоге. Эта команда доступна по умолчанию как часть GNU Coreutils.

Список файлов в текущем каталоге

Когда команда ‘ls‘ запускается без каких-либо аргументов, она просто показывает список файлов текущего каталога.

Список файлов в текущем каталоге

Теперь, когда выполняется команда ls, как показано выше, она просто выводит непосредственное содержимое каталога и не обрабатывает содержимое каталогов внутри каталога и т. д.; т. е. вся древовидная структура файлов и папок под каталогом.

Просмотреть всю структуру каталога

Чтобы просмотреть всю структуру, используйте аргумент '-R' или '--recursive' при выполнении команды ls.

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

С этим аргументом ls спускается до самой глубины папок до точки, где больше нет подкаталогов.

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

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

Установить команду Tree в Linux

Следовательно, чтобы решить эту проблему, мы используем команду «дерево» в Linux. Эта команда недоступна по умолчанию, и ее можно установить в Ubuntu и других дистрибутивах на основе Debian, выполнив следующее:

Команда «дерево» показывает список каталогов в более удобном и аккуратном формате.

Список файловых каталогов

Вы также можете передать путь к каталогу в качестве аргумента.

Структура списка каталогов

Как видно на снимках экрана выше, команда рекурсивно отображает всю файловую структуру без передачи каких-либо аргументов.

Ограничить глубину рекурсивного списка файлов

Чтобы ограничить глубину отображаемой структуры, используйте аргумент ‘-L’.

Ограничить глубину структуры каталогов

Теперь он отображает список файлов только на 3 уровня вглубь, а не полностью вниз.

Заключение

В этой статье мы увидели, как ограничить глубину рекурсивного отображения файлов в Linux. Обратите внимание, что помимо описанного здесь метода с использованием команды «дерево», возможны и другие способы, чаще всего с использованием команды find.

Метод с использованием команды find отображает файлы монотонно без какого-либо форматирования структуры каталогов. Если у вас есть какие-либо вопросы или отзывы, дайте нам знать в комментариях ниже!

Читайте также: