..

tree命令的使用

介绍

tree(树),其作用如其寓意:就是打印出目标目录下的文件树。

用例

# 1. 切记要加 -L (递归层级)参数,否则无限递归下去可能会爆了输出。这里限制
#    递归层数为2,打印出 /etc 目录下的文件树。
$ tree -L 2 /etc
/etc
├── afpovertcp.cfg
├── aliases -> postfix/aliases
├── aliases.db
├── apache2
│   ├── extra
......省略
│   ├── httpd_webdavsharing_proxy.conf.inactive
│   ├── httpd_webdavsharing_template.conf
│   └── wfs.plist
├── xtab
├── zprofile
├── zshrc
└── zshrc_Apple_Terminal

35 directories, 167 files

# 2. 使用 -d 参数,只列出文件夹
$ tree -L 2 -d /etc  # 可简写为:tree -dL 2 /etc。L必须放在最后一个,道理跟 tar -zxvf 是一样的。
/etc
├── apache2
│   ├── extra
│   ├── original
...省略
├── sudoers.d
├── uucp
└── wfs

35 directories

# 3. 配合 -P 参数可以列出符合通配符匹配到的文件;而 -I 参数刚好与之相反。
#    这起到的作用有点类似于文件搜索 find 命令的范畴了。这个使用得很少,不是很好用。
# 
#    我们来看看 /etc 目录下,有多少 *.conf 文件。 --prune 会剪除没有 *.conf 文
#    件的目录
$ tree /etc -P '*.conf' --prune
/etc
├── apache2
│   ├── extra
│   │   ├── httpd-autoindex.conf
│   │   ├── httpd-dav.conf
...省略
├── syslog.conf
└── wfs
    ├── httpd_webdavsharing.conf
    └── httpd_webdavsharing_template.conf

15 directories, 58 files

扩展

tree 命令感觉更多的时候是在写教程的时候,展示项目目录结构用的。用来做文件搜索还是不如 find 等命令好用。