Linux tree уровень вложенности

Команда tree linux

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

Чтобы команда работала на машинах с ОС Linux, нужно от имени администратора установить соответствующую утилиту — в набор «из коробки» она не входит.

Синтаксис и опции tree

Запись команды tree ничем не отличается от большинства стандартных команд и выглядит следующим образом:

$ tree опции

Опций у команды tree множество. Вот те из них, которые отвечают за отображение дерева папок:

  • -a — вывод всех без исключения файлов.
  • -d — только список директорий.
  • -l — переход по символическим ссылкам, которые ведут к папкам.
  • -f — содержимое папок будет показано с префиксами пути.
  • -x — учитывает только текущую файловую систему.
  • -L — задает уровень вложенности для отображения в выводе.
  • -R — рекурсивный переход по каталогам всех уровней.
  • -P — отображение файлов, название которых соответствует шаблону.
  • -I — исключение из вывода файлов, название которых соответствует шаблону.
  • -o — печать вывода в файл с заданным именем.
  • —noreport — запрещает команде выводить отчет по количеству папок и файлов в конце дерева.
  • —charset — задает кодировки для отображения графических и html-файлов.
  • —filelimit — папки, которые содержат больше файлов, чем указано, показаны не будут.

А эти опции используются для управления отображением названий документов:

  • -q — заменяет непечатные символы в названиях файлов знаком ?.
  • -N — выводит непечатные символы в названиях файлов как есть.
  • -Q — заключает названия файлов в двойные кавычки.
  • -p — для каждого из файлов указывает его название и список разрешенных действий.
  • -u — печатает имя или идентификатор учетной записи, под которой был создан файл.
  • -g — печатает имя или идентификатор группы пользователей, которая имеет права на доступ к файлу.
  • -s — рядом с названием файла выводит его размер в байтах.
  • -h — выводит размер файла в более простом для человеческого восприятия виде, добавляя к числу буквенное сокращение.
  • -D — печатает дату последнего изменения файла (либо последнее изменение статуса в комбинации с опцией -c).
  • -F — добавляет символ / для папок, = для файлов сокета, * для исполняемых файлов, > для door-файлов, | для специальных файлов FIFO.
  • —inodes — выводит номера индексных дескрипторов для файлов и папок.
  • —device — указывает номер устройства, к которому принадлежит файл или папка.
Читайте также:  No audio firefox linux

Опции для сортировки результатов:

  • -v — упорядочивает выдачу по уровням вложенности.
  • -t — сортирует выдачу по дате последнего изменения файлов и папок.
  • -c — сортирует выдачу по дате последнего изменения статуса.
  • -U — результаты будут выведены в том порядке, в котором папки расположены на диске.
  • -r — сортирует выдачу в обратном порядке.
  • —dirsfirst — сначала будут показаны папки, потом — файлы.
  • -i — убирает линии («ветки» дерева), файлы и папки отображаются в виде списка.
  • -n — делает дерево одноцветным.
  • -C — возвращает дереву разноцветное отображение после использования опции -n.

Дальше рассмотрим как команда tree в linux может использоваться на примерах.

Примеры использования tree

Самый простой способ использовать команду tree Linux — напечатать в терминале всего лишь одно слово:

Результатом станет стандартное отображение структуры папок. Размер выдачи зависит от того, сколько хлама накопилось на жестком диске. У автора его столько, что листать — не перелистать:

Немного сократить объем информации можно, попросив команду показывать только папки. Для этого служит опция -d. А чтобы отпилить от дерева еще больше ненужных веток, установим ограничение на количество файлов, которые хранятся в папках (если файлов больше, папка не попадет в выдачу). В этом нам поможет опция —filelimit.

Кстати, нельзя устанавливать лимит меньше, чем 25 файлов.

По умолчанию команда tree в linux не показывает скрытые папки. Чтобы увидеть их, следует воспользоваться опцией -a. Заодно не помешает упорядочить выдачу — например, по уровням вложенности (параметр -v). Ну и почему бы не узнать, когда тот или иной файл был изменен последний раз — добавим к команде еще и -D.

Теперь поработаем с определенной группой файлов. Для примера отберем те, у которых формат pdf — сделать это позволяет опция -P. Она дает команде понять, что нужно выводить только документы, соответствующие маске. Чтобы задать маску для любого количества символов от 0 до бесконечности используется знак *, а чтобы обозначить только 1 символ — знак ?. Название файла или папки следует заключить в одинарные кавычки.

Опция —prune нужна для того, чтобы исключить из выдачи папки, внутри которых нет искомых документов (по умолчанию команда выводит даже те папки, которые не имеют отношения к поисковому запросу).

Стандартно результат команды tree направляется в терминал. Но есть возможность напечатать его в файл и сохранить для дальнейшего использования. С этой целью создадим документ txt с названием tree_command_results и поместим его в корневой каталог. После этого выполним команду следующего вида:

tree -d -o tree_command_results.txt

Опция -d использована для сокращения количества информации и ее присутствие здесь не обязательно. Опция -o отвечает за перенаправление вывода в файл.

В терминале никакой результат не отображается:

Зато в указанном файле находим перечень папок, который занимает 45 страниц:

Для получения дополнительной информации о файлах дополним команду tree опциями -h (показывает размер), -u (указывает на аккаунт, с которого файл был создан), -p (так мы узнаем, что можно делать с каждым конкретным файлом — только просматривать или также изменять его содержимое). Также используем параметр -f, чтобы видеть полный путь к каждому документу.

Читайте также:  Swap linux при установке

Полезный лайфхак — если объединить опции -P и -f, можно быстро находить файлы, затерявшиеся в памяти компьютера:

Выводы

Пользу команды tree для пользователей Linux переоценить сложно. С ее помощью удается получить всю возможную информацию о файлах и папках, расположенных на жестком диске. Кстати, у нее есть конкурент — более известная команда ls, которая, тем не менее, уступает tree в удобстве и функционале. А как и для чего вы используете команду tree?

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

How to Limit Depth of ‘tree’ for Recursive File Listing

Usually, the ls command is used in Linux to display files and folders. It is an inbuilt command in GNU/Linux. However, it has its shortcomings, for example, there is no option to view directories recursively.

Today we want to introduce you to a new command called ‘tree’ which is used for recursive file listing, and how we can call it with a limit on the depth of file structure to be displayed.

Install Tree Command in Linux

The tree command is not available by default in Linux distributions, and can be installed in Debian and RedHat-based distributions with:

$ sudo apt install tree [on Debian, Ubuntu & Mint] $ sudo yum install tree [on RedHat, CentOS & Fedora]

And in Arch-based distributions with:

$ sudo pacman -Sy tree [on Arch and Manjaro Linux]

Verify if it has been installed by calling:

Recursive Directory Listing in Linux

The tree command shows directory listing in a neater format with proper indentations for subdirectories and different color codes for files and folders. Call it without any arguments to get the whole tree structure beneath a folder.

Recursive Directory Listing

Similarly, you can also pass a directory path as an argument to display the tree structure beneath that directory instead of the current directory.

View Directory Tree Structure In Linux

You can also call it with multiple directory path arguments. As seen in both the screenshots above, the command will go to the very bottom of the tree structure of a directory, to the point where there are no more subdirectories, and display everything.

Limit Depth of Recursive File Listing

However, as discussed in the beginning, this obviously becomes tricky when used on a folder with a number of subdirectories having large depth. To limit the depth of the recursive file listing use the -L argument as shown.

Here ‘Depth‘ is a positive integer indicating the maximum depth of folder structure to be displayed.

Limit Depth of Recursive File Listing

It has restricted the display to 2 levels below the directory path passed to it, i.e., ‘/snap/‘. Without this argument, it would create a huge display as ‘snap’ is a system folder that runs very deep and contains a large number of files.

Читайте также:  Linux centos установка node js

Set Different Depth Limits for Directory Listing

Similarly, you can call tree and pass multiple directory paths simultaneously with different depth limits for each:

$ tree -L 2 /home -L 3 /etc/apt/apt.conf.d

Set Different Depth Limits for Directory Listing

Conclusion

In this article, we learned about the command tree command and how to limit its depth on displayed file structure. Make sure you read the manual page of ‘tree’ to learn more about it.

Are you familiar with more similar commands? Let us know in the comments below!

Источник

Команда tree в Linux

Изображение баннера

Рассмотрим мою директорию virtualbox , если использовать tree без флагов результатом будет демонстрация всех файлов и директорий.

virtualbox ├── andrei@srv ├── GNUmakefile ├── iso │ └── ubuntu-20.04.3-desktop-amd64.iso ├── ubuntu │ └── GNUmakefile ├── vdi │ └── ubuntu3.vdi └── vms └── Other OS └── ubuntu3 ├── Logs │ ├── VBox.log │ ├── VBox.log.1 │ ├── VBox.log.2 │ └── VBox.log.3 ├── ubuntu3.vbox └── ubuntu3.vbox-prev 7 directories, 11 files

В директории не так много файлов, поэтому всё поместилось на один экран. Если сделать то же самое с какой-то большой директорией, например, /var или /etc выдача может занять несколько минут.

Чтобы увидеть только файлы и директории верхнего уровня нужно задать -L 1

virtualbox ├── andrei@srv ├── GNUmakefile ├── iso ├── ubuntu ├── vdi └── vms 4 directories, 2 files

Я так никогда не делаю — проще использовать ls

А вот -L 2 то есть верхний уровень и его первые подуровни проверять приходится часто. Так можно увидеть не только список директорий как в ls но и поддиректории.

virtualbox ├── andrei@srv ├── GNUmakefile ├── iso │ └── ubuntu-20.04.3-desktop-amd64.iso ├── ubuntu │ └── GNUmakefile ├── vdi │ └── ubuntu3.vdi └── vms └── Other OS 5 directories, 5 files

Источник

Утилита tree — просмотр дерева директорий в командной строке

Обычно для просмотра списка файлов и директорий в командной строке Linux используется команда ls . В данной заметке мы рассмотрим, как выводить древовидный список файлов и директорий. Для этого мы воспользуемся утилитой/командной tree

Команда tree рекурсивно обходит все вложенные директории и файлы для выбранной директории и выводит информацию в удобном древовидном формате.

Установка утилиты tree

По умолчанию утилита tree не установлена в популярных дистрибутивах Linux.

Для установки в Ubuntu выполните в терминале команду:

Для установки в Fedora выполните команду:

Синтаксис команды tree

Команду tree можно использовать следующим образом:

Опции

У команды довольно много опций, остановимся только на некоторых из них:

Полный список опций команды tree можно получить, выполнив команду man tree

Примеры использования

Рассмотрим несколько примеров использования команды tree

Дерево текущей директории

Выведем дерево файлов в текущей директории. Выполняем команду tree без аргументов:

Команда tree

Вывод размеров файлов

Воспользуемся опцией -h , чтобы показать размеры файлов:

Команда tree с выводом размеров файлов

Вывод владельца и даты

Выведем размеры, владельца, группу и дату изменения:

Источник

Оцените статью
Adblock
detector