1、概述
以树状结构列出目录的内容。
2、命令格式
tree [-adfghilnopqrstuvxACDFNS] [-L level [-R]] [-H baseHREF] [-T title] [-o filename] [–nolinks] [-P pattern] [-I pattern] [–inodes]
[–device] [–noreport] [–dirsfirst] [–version] [–help] [–filelimit #] [directory …]
3、常用命令参数
-a 列出目录中所有的目录和文件,包含隐藏文件,但是不会列出 “.”和 “..”
-d 只列出目录
-f 列出目录和文件,并显示相应的前缀路径。
[oldboy@moban ~]$ tree -f oldboy oldboy |-- oldboy/2.2.17 |-- oldboy/a1 |-- oldboy/a2 |-- oldboy/a3 |-- oldboy/aaa |-- oldboy/dir1 | |-- oldboy/dir1/bbb | |-- oldboy/dir1/t1 | |-- oldboy/dir1/t2 | `-- oldboy/dir1/t3 |-- oldboy/dir2 |-- oldboy/dir3 `-- oldboy/log.txt 5 directories, 8 files
-i 不以阶梯形式列出文件和目录,通常结合-f 一起使用。
[oldboy@moban ~]$ tree -i oldboy oldboy 2.2.17 a1 a2 a3 aaa dir1 bbb t1 t2 t3 dir2 dir3 log.txt 5 directories, 8 files [oldboy@moban ~]$ [oldboy@moban ~]$ tree -if oldboy oldboy oldboy/2.2.17 oldboy/a1 oldboy/a2 oldboy/a3 oldboy/aaa oldboy/dir1 oldboy/dir1/bbb oldboy/dir1/t1 oldboy/dir1/t2 oldboy/dir1/t3 oldboy/dir2 oldboy/dir3 oldboy/log.txt 5 directories, 8 files
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
-P pattern 只显示符合范本样式的文件或目录名称
注意:’*’ 表示0个或多个任意字符,’?’ 任意单个字符, ‘[…]’ 在此区域内的任意单个字符 如:[a-z]
[oldboy@moban ~]$ tree -p -P '[a-z][a-z][a-z]' oldboy # 正确 oldboy |-- [drwxrwxr-x] 2.2.17 |-- [-rw-rw-r--] aaa # 匹配内容 |-- [drwxrwxr-x] dir1 | `-- [drwxrwxr-x] bbb |-- [drwxrwxr-x] dir2 `-- [drwxrwxr-x] dir3 5 directories, 1 file [oldboy@moban ~]$ tree -p -P '[a-z]{3}' oldboy # 错误 oldboy |-- [drwxrwxr-x] 2.2.17 |-- [drwxrwxr-x] dir1 | `-- [drwxrwxr-x] bbb |-- [drwxrwxr-x] dir2 `-- [drwxrwxr-x] dir3 5 directories, 0 files
-I pattern 不显示符合范本样式的文件或目录名称【和 -P 结果相反】
[oldboy@moban ~]$ tree -p -I '[a-z][a-z][a-z]' oldboy # 没有列出 文件 aaa 目录 bbb oldboy |-- [drwxrwxr-x] 2.2.17 |-- [-rw-rw-r--] a1 |-- [-rw-rw-r--] a2 |-- [-rw-rw-r--] a3 |-- [drwxrwxr-x] dir1 | |-- [-rw-rw-r--] t1 | |-- [-rw-rw-r--] t2 | `-- [-rw-rw-r--] t3 |-- [drwxrwxr-x] dir2 |-- [drwxrwxr-x] dir3 `-- [-rw-rw-r--] log.txt 4 directories, 7 files
-p 打印每个文件和目录的文件类型和权限信息
-s 打印每个文件的字节数大小
-h 打印每个文件的大小,格式为我们常用的格式。如【K,M,G,T,P,E】
[oldboy@moban ~]$ tree -h oldboy oldboy |-- [4.0K] 2.2.17 |-- [ 12] a1 |-- [ 27] a3 |-- [ 46] aaa |-- [4.0K] dir1 | |-- [4.0K] bbb | |-- [ 0] t1 | |-- [ 0] t2 | `-- [ 0] t3 |-- [4.0K] dir2 |-- [4.0K] dir3 `-- [ 37] log.txt
-u 打印文件的属主,如果找不到属主,那么打印他的UID【属主ID】
-g 打印文件的属组,如果找不到属组,那么打印他的GID【属组ID】
-D 打印文件的最后修改时间
–inodes 打印文件或目录的inode 号
–device 打印文件或目录的设备归属 号
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/”,”=”,”@”,”|”号。和 ls -F 一样
-q 用”?”号取代控制字符,列出文件和目录名称。
-N 直接列出文件和目录名称,包括控制字符
-r 按字母顺序,倒序排列输出
-t 根据最后修改时间排序
–dirsfirst 先列出目录,然后列出文件
-C 在文件和目录清单加上色彩,便于区分各种类型
-n 关闭文件和目录的色彩。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合
[oldboy@moban ~]$ tree -A oldboy oldboy +-- 2.2.17 +-- a1 +-- a2 +-- a3 +-- aaa +-- dir1 | +-- bbb | +-- t1 | +-- t2 | +-- t3 +-- dir2 +-- dir3 +-- log.txt 5 directories, 8 files
-L level 显示树的层级
[oldboy@moban ~]$ tree -L 1 oldboy oldboy |-- 2.2.17 |-- a1 |-- a2 |-- a3 |-- aaa |-- dir1 |-- dir2 |-- dir3 `-- log.txt 4 directories, 5 files
4、常用示例
暂无
5、所在位置和类型
[oldboy@moban ~]$ which tree /usr/bin/tree [oldboy@moban ~]$ type tree tree is hashed (/usr/bin/tree)
原文始发于:Linux tree 命令