输入tree:
cmd: tree
不显示文件
可以用相对路径:tree .\test_pipreqs
省略.\也可以:tree test_pipreqs
上面只显示文件夹未能显示文件。我们继续看下面:
cmd: tree [path] [/f] [/a]
----------/f 显示每个文件中文件的名称
----------/a 使用ASCII字符,而不使用扩展字符
cmd: tree [path] [/f] [/a]
----------/f 显示每个文件中文件的名称
----------/a 使用ASCII字符,而不使用扩展字符
显示文件夹和文件:
cmd: tree /f
tree.txt文件
中:文件夹树状图生成到当前文件夹的tree.txt文件中:
cmd: tree /f >tree.txt
tree /?
- 基本用法
tree [directory]
如果没有指定目录,tree 会显示当前目录的树状结构。
- 限制目录深度
使用 -L 选项可以限制递归的深度。
tree -L level [directory]
这里的 level 表示目录的深度级别。
- 只列出目录
tree -d
使用 -d 选项,tree 将仅列出目录而不包括文件。
- 包含隐藏文件
tree -a
默认情况下,tree 不显示以点(.)开头的隐藏文件或目录。使用 -a 选项可以包含这些文件。
- 使用模式匹配
tree -P pattern
通过 -P 选项,可以指定一个模式来匹配文件名,仅显示匹配该模式的文件。
- 排除特定文件(-I)
tree -I pattern
使用 -I 选项,可以排除匹配给定模式的文件或目录。
在使用tree命令时,参数 -I 后面跟的是需要排除的目录或文件模式。如果提供一个路径,如-I nginx/mp42m3u8,试图排除名为nginx/mp42m3u8的路径,这是不允许的,应该只提供目录或文件名。
因此,如果想排除aaa目录,你应该这样使用:
tree -I ‘aaa’
如果想排除多个目录,可以用管道符|连接它们:
tree -I ‘dir1|dir2|dir3’
注意,当使用-I选项时,匹配的模式是大小写敏感的,并且会匹配到任何位置的路径部分。例如,-I foo将会匹配并排除./foo, ./bar/foo/baz, ./foobar等等。
还要注意的是,如果你在shell脚本或终端中使用特殊字符(如星号*或问号?),可能需要将模式放在引号内,以防止shell进行模式扩展。
- 输出到文件
tree > output.txt
可以将 tree 的输出重定向到文件中保存。
- 显示文件大小
tree -s
在文件旁边显示每个文件的大小。
- 显示完整的路径
tree -f
显示从根目录开始的每个文件的完整路径。
- 颜色输出
tree -C
默认情况下,在大多数终端环境中,tree 会有颜色输出。使用 -C 强制颜色输出,有助于区分文件类型。
- 按文件类型分类(确实更直观漂亮一点)
tree --dirsfirst
使用 --dirsfirst 选项,目录会被放在文件之前列出
- 指定字符集
tree -N
正常处理不可打印的字符。
- 排除某个路径的目录或文件(find命令结合–fromfile)
tree命令的 -I 参数只能排除指定的文件名或者目录名,而不能直接排除一个特定的路径。-I 参数后面跟的模式是用于匹配任何路径部分的文件名或目录名。
如果想排除特定路径下的目录,可能需要借助其他的shell命令或者脚本来实现。例如,可以使用find命令来查找文件,然后通过管道|传递给tree:
find . -path ./nginx/mp42m3u8 -prune -o -print | tree --fromfile
在这个命令中:
find . -path ./nginx/mp42m3u8 -prune -o -print 命令会查找当前目录下所有的文件和目录,但是会排除 ./nginx/mp42m3u8 路径。
-prune 是 find 命令的一个选项,表示 “不要在这个路径下查找”。
-o -print 表示 “否则(如果不是上面的路径),打印文件名”。
| tree --fromfile 将 find 的结果传递给 tree 命令。–fromfile 参数让 tree 从输入流中读取文件名。
请注意,这个命令可能不会像原生的 tree 命令那样漂亮地格式化输出,因为 tree --fromfile 只是简单地从输入流中读取文件名,并没有考虑它们的层次结构。