作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
使用 tree 命令以树状图递归的形式显示各级目录,可以方便地看到目录结构。
安装 tree 命令
大部分 Linux 中默认没有安装 tree 命令,以 CentOS 7.x 为例:
[wang@localhost ~]$ tree
bash: tree: 未找到命令...
切换至 root,进行安装:
[root@localhost ~]# yum install tree
命令介绍
-
命令名称
tree -
基本语法
tree [-acdfghilnpqrstuvxACDFQNSUX] [-H baseHREF] [-T title ] [-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset] [--filelimit[=]#] [--si] [--timefmt[=]<f>] [<directory list>]
-
功能描述
以树状图递归的形式显示各级目录
命令选项
选项 | 说明 |
---|---|
-a | 显示所有文件和目录 |
-C | 为文件和目录清单加上色彩,便于区分各种类型 |
-d | 显示目录名称而非内容 |
-D | 列出文件或目录的更改时间 |
-f | 在每个文件或目录之前,显示完整的相对路径名称 |
-F | 在执行文件、目录、Socket、符号连接、管道名称前,分别加上“*”、“/”、“=”、“@”、“|”符号 |
-g | 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码 |
-i | 不以阶梯状列出文件或目录名称 |
-I | 不显示符合范本样式的文件或目录名称 |
-l | 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录 |
-n | 不为文件和目录清单加上色彩 |
-s | 列出文件或目录大小 |
-u | 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码 |
-x | 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外 |
使用范例
1.不带选项运行 tree
[wang@localhost doc]$ tree
. #当前目录结构
├── c
│ └── hello.c
├── linux
│ └── hello.sh
├── php
│ └── hello.php
├── program
└── python
└── hello.py
4 directories, 5 files
2.查看不同级别子目录
使用 tree -L n
命令,n 为数字,表示查看当前第 n 级的目录和文件。
# 查看第一级目录和文件
[wang@localhost doc]$ tree -L 1
.
├── c
├── linux
├── php
├── program
└── python
4 directories, 1 file
# 查看第二级目录和文件
[wang@localhost doc]$ tree -L 2
.
├── c
│ └── hello.c
├── linux
│ └── hello.sh
├── php
│ └── hello.php
├── program
└── python
└── hello.py
4 directories, 5 files
3.显示完整的相对路径名称
[wang@localhost doc]$ tree -f
.
├── ./c
│ └── ./c/hello.c
├── ./linux
│ └── ./linux/hello.sh
├── ./php
│ └── ./php/hello.php
├── ./program
└── ./python
└── ./python/hello.py
4 directories, 5 files
4.只显示目录
[wang@localhost doc]$ tree -d
.
├── c
├── linux
├── php
└── python
4 directories
5.为文件和目录清单加上色彩,便于区分各种类型。
这些都是日常操作中经常用到的,关于其他用法,可以使用 man tree
或者 tree --help
来查询手册页。