Команда 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 — указывает номер устройства, к которому принадлежит файл или папка.
Опции для сортировки результатов:
- -v — упорядочивает выдачу по уровням вложенности.
- -t — сортирует выдачу по дате последнего изменения файлов и папок.
- -c — сортирует выдачу по дате последнего изменения статуса.
- -U — результаты будут выведены в том порядке, в котором папки расположены на диске.
- -r — сортирует выдачу в обратном порядке.
- —dirsfirst — сначала будут показаны папки, потом — файлы.
Опции отображения дерева:
- -i — убирает линии («ветки» дерева), файлы и папки отображаются в виде списка.
- -n — делает дерево одноцветным.
- -C — возвращает дереву разноцветное отображение после использования опции -n.
Дальше рассмотрим как команда tree в linux может использоваться на примерах.
Примеры использования tree
Самый простой способ использовать команду tree Linux — напечатать в терминале всего лишь одно слово:
Результатом станет стандартное отображение структуры папок. Размер выдачи зависит от того, сколько хлама накопилось на жестком диске. У автора его столько, что листать — не перелистать:
Немного сократить объем информации можно, попросив команду показывать только папки. Для этого служит опция -d. А чтобы отпилить от дерева еще больше ненужных веток, установим ограничение на количество файлов, которые хранятся в папках (если файлов больше, папка не попадет в выдачу). В этом нам поможет опция —filelimit.
tree -d —filelimit 26
Кстати, нельзя устанавливать лимит меньше, чем 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, чтобы видеть полный путь к каждому документу.
Полезный лайфхак — если объединить опции -P и -f, можно быстро находить файлы, затерявшиеся в памяти компьютера:
tree -f -P ‘*studio*’ —prune
Выводы
Пользу команды tree для пользователей Linux переоценить сложно. С ее помощью удается получить всю возможную информацию о файлах и папках, расположенных на жестком диске. Кстати, у нее есть конкурент — более известная команда ls, которая, тем не менее, уступает tree в удобстве и функционале. А как и для чего вы используете команду tree?
Как в linux посмотреть в каталоге дерево папок и файлов
Чтобы просмотреть содержимое подкаталога `work’ в текущем каталоге, введите:
Чтобы просмотреть содержимое каталога `/usr/doc’, введите:
Из листинга по умолчанию Вы не сможете отличить каталоги и исполняемые файлы от обычных. Используйте ключ `-F’, который заставит ls поместить символ `/’ после имен подкаталогов и символ `*’ после имен исполняемых файлов:
В этом примере текущий рабочий каталог содержит исполняемый файл `repeat’, каталог `words’, и несколько файлов других типов `test1′ и `test2′.
Еще один способ просмотра содержимого каталогов — использование «менеджера файлов» , которых для Linux создано достаточно много; наиболее популярным является «Midnight Commander» или mc.
Чтобы вывести более подробный листинг каталога, используйте ls с ключом `-l’ («long»). Листинг будет содержать размер каждого файла в байтах, время последней модификации, тип файла, имя владельца и права доступа.
Для вывода подробной информации о каталоге `/usr/doc/bash’, введите: Первая строка содержит информацию о полном объеме занимаемого каталогом дискового пространства в блоках по 1024 байта (в данном случае 72). Каждая последующая строка содержит несколько колонок с информацией о каждом файле.
Первая колонка указывает тип файла и права доступа к нему. Первый символ в этой колонке определяет тип файла; тире (`-‘) означает обычный файл (по умолчанию). Каталоги обозначаются буквой `d’, а символические ссылки — буквой `l’. Остальные девять символов в первой колонке указывают права доступа к файлу. Вторая колонка указывает количество жестких ссылов на файл. Третья и четвертая колонки указывают пользователя и группу, которые владеют этим файлом. Пятая колонка содержит размер файла в байтах, шестая — время и дату последней модификации файла, а в последней колонке указано имя файла, к которому относится информация.
Чтобы просмотреть каталог рекурсивно, то есть со всеми содержащимися в нем подкаталогами, используйте опцию `-R’. Например, для текущего каталога введите: В данном примере текущий рабочий каталог содержит два подкаталога, `work’ и `play’, но не содержит файлов. Каждый из подкаталогов содержит файл `notes’.
Чтобы вывести полное оглавление все файловой системы, наберите:
Обычно этот ключ комбинируют с опцией `-l’, чтобы вывести наиболее полный листинг файлов системы:
Примечание: Некоторые каталоги могут не попасть в листинг, если у Вас нет права доступа к ним.
Чтобы отсортировать список файлов в каталоге по времени создания или модификации, используйте опцию `-t’. Например, чтобы вывести список файлов в каталоге `/usr/tmp’, чтобы самые новые файлы были вверху списка, введите:
По умолчанию, ls не выводит имена файлов, начинающиеся с символа «точка» (`.’). Чтобы уменьшить листинг, многие приложения «скрывают» файлы конфигурации в Вашем домашнем каталоге, присваивая им имена, начинающиеся с точки; они называются dot-файлы, или «скрытые» . Каждый каталог имеет два специальных dot-файла: `..’ — родительский каталог и `.’ — сам этот каталог.
Чтобы увидеть все файлы в каталоге, включая скрытые, используйте опцию `-a’. Например, для текущего каталога:
Чтобы увидеть все файлы, исключая специальные `..’ и `.’, используйте опцию `’-A:
Чтобы увидеть цветной листинг каталога, используйте ls с ключом `—color’ ; тогда все имена файлов будут выведены разными цветами, в зависимости от их содержания. По умолчанию каталоги выводятся синим, текстовые файлы — белым, исполняемые — зеленым и т.д.
Примечание: Обычно для команды `ls -color’ создается псевдоним `ls’, так что листинг выводится в цвете по умолчанию.
Для того, чтобы вывести граф иерархии каталогов, используйте утилиту tree. Например, для вывода дерева каталогов, начиная с текущего, наберите:
В этом примере выводится дерево каталогов, в котором текущий каталог содержит два подкаталога `projects’ и `trip’; а каталог `projects’, в свою очередь, содержит подкаталоги `current’ и `old’.
Чтобы вывести дерево каталогов для определенного каталога, укажите его имя в качестве аргумента tree. Например, для Вашего домашнего каталога, введите:
Чтобы вывести дерево каталогов, в котором будут присутствовать только имена каталогов, используйте опцию `-d’. Это полезно при выводе полного дерева каталогов системы:
$ tree -d / > tree [Enter]
Команда ls имеет много опций для управления листингом и отображаемой информацией о файлах; приведенная таблица описывает некоторые из них.
| Опция | Описание |
| —color | Вывод имен файлов в цвете, в зависимости от их типа. |
| -R | Рекурсивный список файлов. |
| -a | Вывод всех файлов, включая скрытые. |
| -d | Вывод только имен каталогов, без промсмотра их содержимого. |
| -f | Вывод содержимого каталога в том порядке, в котором оно записано на диск. |
| -l | Подробный листинг. |
| -r | Сортировка содержимого каталога в обратном порядке. |
| -s | Вывод размера — в блоках по 1K — для каждого файла. |
| -t | Сортировка по времени создания или модификации файла. |
Примечание: Вы можете комбинировать опции в любом порядке; например, чтобы вывести список файлов, отсортированный по времени, со всеми атрибутами, введите `-lt’. Чтобы рекурсивно отобразить все скрытые файлы и их атрибуты, используйте `-lRa’. Порядок опций не имеет значения, так что `-lRa’ означает то же самое, что и `-alR’.
Next: Копирование файлов и каталогов Up: Работа с файлами Previous: Перемещение по каталогам Contents Index Alex Otwagin 2002-12-16








