💾 Archived View for tilde.team › ~rami › tree.gmi captured on 2023-01-29 at 04:07:07. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
רמי
SUBJECT: Tree: Примеры использования команды
AUTHOR: Rami Rosenfeld
DATE: 16/10/22
TIME: 22.00
LANG: ru, en
LICENSE: GNU FDL 1.3
TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, rhel, centos, mate, xfce, lxde, spin, tree
Очень полезная команда bash, осуществляющая листинг файлов и каталогов с возможностью их фильтрования и сортировки.
Допустим, у нас имеется директория, содержащая некоторую структуру подкаталогов и файлов:
ls
drwxr-xr-x. 2 4,0K 2016-12-04 21:18 directory_1/ drwxr-xr-x. 2 4,0K 2016-12-04 21:17 directory_2/ -rw-------. 1 1,5M 2016-06-09 12:39 file_1.name -rw-------. 1 802K 2015-09-25 20:35 file_2.name -rw-rw-r--. 1 333K 2016-11-25 02:46 file_3.name
Быстро просмотреть содержимое корневой директории и ее подкаталогов поможет команда tree, исполненная без подключей:
tree
├── directory_1 │ ├── 1.txt │ ├── 2.png │ └── 3.doc ├── directory_2 ├── file_1.name ├── file_2.name └── file_3.name 2 directories, 6 files
Узнать размеры файлов можно с помощью ключа -s ("size"). Чтобы вывод информации осуществлялся не в байтах, а в более понятных величинах, используем ключ -h ("human readable"):
tree -s -h
├── [ 4.0K] directory_1 │ ├── [ 105] 1.txt │ ├── [ 173] 2.png │ └── [ 278] 3.doc ├── [ 4.0K] directory_2 ├── [ 1.4M] file_1.name ├── [ 802K] file_2.name └── [ 332K] file_3.name 2 directories, 6 files
По умолчанию команда tree не выводит скрытые файлы и каталоги, поэтому необходимо применить ключ -a ("all"):
tree -a
├── directory_1 │ ├── 1.txt │ ├── 2.png │ └── 3.doc ├── directory_2 ├── file_1.name ├── file_2.name ├── file_3.name ├── .hidden_directory └── .hidden_file.txt 3 directories, 7 files
Ключи -p ("permissions"), -u ("user), -g ("group), -D ("date") позволят получить более детальную информацию:
tree -a -pugD
├── [drwxr-xr-x user user Dec 4 21:18] directory_1 │ ├── [-rw------- user user Jan 15 2014] 1.txt │ ├── [-rw------- user user Jan 15 2014] 2.png │ └── [-rw------- user user Jan 15 2014] 3.doc ├── [drwxr-xr-x user user Dec 4 21:17] directory_2 ├── [-rw------- user user Jun 9 12:39] file_1.name ├── [-rw------- user user Sep 25 2015] file_2.name ├── [-rw-rw-r-- user user Nov 25 2:46] file_3.name ├── [drwxr-xr-x user user Dec 4 21:22] .hidden_directory └── [-rw------- user user Apr 9 2019] .hidden_file.txt 3 directories, 7 files
Ключ -t ("time") отсортирует список по времени последнего доступа:
tree -t
├── file_2.name ├── file_1.name ├── file_3.name ├── directory_2 └── directory_1 ├── 2.png ├── 3.doc └── 1.txt 2 directories, 6 files
Ключ -r, добавленный к -t, отсортирует список в обратном порядке:
tree -t -r
. ├── directory_1 │ ├── 1.txt │ ├── 3.doc │ └── 2.png ├── directory_2 ├── file_3.name ├── file_1.name └── file_2.name 2 directories, 6 files
При использовании команды с помощью ключа -P можно задать отображение только нужных файлов (по паттерну):
tree -P *.png
├── directory_1 │ └── 2.png
Наоборот, из листинга по паттерну можно исключать отдельные файлы:
tree -I *.png
├── directory_1 │ ├── 1.txt │ └── 3.doc ├── directory_2 ├── file_1.name ├── file_2.name └── file_3.name 2 directories, 5 files
alias mytree='tree -ashpugD'
Подробнее см.: man tree
🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.