windows tree命令用法
如:
- 步骤:
在当前路径运行CMD:
输入tree
:
当然也可以用绝对路径, 以tree \
起头:
太多了就不贴上来了。
也可以用相对路径:
tree .\test_pipreqs
省略.\也可以:
tree test_pipreqs
可以看到,上面只显示文件夹未能显示文件。我们继续看下面:
tree [path] [/f] [/a]
#/f 显示每个文件中文件的名称
#/a 使用ASCII字符,而不使用扩展字符
tree /f
tree /a
(用tree /f /a
加上/a
后,显示效果明显好不少)
D:\4_Cotton_preprocess\test_pipreqs>tree /f >tree.txt
D:\4_Cotton_preprocess\test_pipreqs>
能够将文件夹树状图生成到当前文件夹的tree.txt文件中:
# 查看其他参数
tree /?
linux tree命令用法
1. 基本用法
tree [directory]
如果没有指定目录,tree
会显示当前目录的树状结构。
2. 限制目录深度(-L)
使用 -L
选项可以限制递归的深度。
tree -L level [directory]
这里的 level
表示目录的深度级别。
3. 只列出目录(-d)
tree -d
使用 -d
选项,tree
将仅列出目录而不包括文件。
4. 包含隐藏文件(-a)
tree -a
默认情况下,tree
不显示以点(.
)开头的隐藏文件或目录。使用 -a
选项可以包含这些文件。
5. 使用模式匹配(-P)
tree -P pattern
通过 -P
选项,可以指定一个模式来匹配文件名,仅显示匹配该模式的文件。
注意如果没有匹配的文件,也默认会把目录打印出来:
6. 排除特定文件(-I)
tree -I pattern
使用 -I
选项,可以排除匹配给定模式的文件或目录。
在使用tree
命令时,参数 -I
后面跟的是需要排除的目录或文件模式。如果提供一个路径,如-I nginx/mp42m3u8
,试图排除名为nginx/mp42m3u8
的路径,这是不允许的,应该只提供目录或文件名。
因此,如果想排除mp42m3u8
目录,你应该这样使用:
tree -I 'mp42m3u8'
如果想排除多个目录,可以用管道符|
连接它们:
tree -I 'dir1|dir2|dir3'
注意,当使用-I
选项时,匹配的模式是大小写敏感的,并且会匹配到任何位置的路径部分。例如,-I foo
将会匹配并排除./foo
, ./bar/foo/baz
, ./foobar
等等。
还要注意的是,如果你在shell脚本或终端中使用特殊字符(如星号*或问号?),可能需要将模式放在引号内,以防止shell进行模式扩展。
7. 输出到文件(>
)
tree > output.txt
可以将 tree
的输出重定向到文件中保存。
(略)
8. 显示文件大小(-s)(-h人性化显示)
tree -s
在文件旁边显示每个文件的大小。
也可以加个-h
人性化显示:
9. 显示完整的路径(-f)
tree -f
显示从根目录开始的每个文件的完整路径。
10. 颜色输出(-C)
tree -C
默认情况下,在大多数终端环境中,tree
会有颜色输出。使用 -C
强制颜色输出,有助于区分文件类型。
11. 按文件类型分类(确实更直观漂亮一点)(--dirsfirst
)
tree --dirsfirst
使用 --dirsfirst
选项,目录会被放在文件之前列出。
这样输出确实直观漂亮一点。
12. 指定字符集(-N)(正常处理不可打印的字符)
tree -N
正常处理不可打印的字符。
13. 排除某个路径的目录或文件(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
只是简单地从输入流中读取文件名,并没有考虑它们的层次结构。
linux tree命令的安装
要获得更多关于 tree
命令的信息,你可以在命令行中键入 man tree
来访问其手册页,或者使用 tree --help
查看所有可用的选项。
需要注意的是,tree
命令可能不是所有 Linux 发行版的默认安装程序,如果未找到 tree
,你可以通过发行版的包管理器来安装它。例如,在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令进行安装:
sudo apt-get install tree
在基于 Red Hat 的系统(如 Fedora 或 CentOS)上,可以使用:
sudo yum install tree
或者在新版本中使用 dnf
:
sudo dnf install tree
20250115 tree -pugs
查看文件信息
tree -pugs
(base) root@ky:/ky/tools/mosquitto# tree -pugs
.
├── [-rwxrwxrwx nobody nogroup 5068] install_mosquitto.sh
├── [-rwxrwxrwx root root 15149568] kyai_mosquitto_arm-v1.0.0_20230618.tar
├── [drwxrwxrwx nobody nogroup 4096] mount
│ ├── [drwxrwxrwx 1883 1883 4096] config
│ │ └── [-rwxrwxrwx 1883 1883 854] mosquitto.conf
│ ├── [drwxrwxrwx 1883 1883 4096] data
│ └── [drwxrwxrwx 1883 1883 4096] log
│ └── [-rwxrwxrwx 1883 1883 0] mosquitto.log
└── [-rwxrwxrwx nobody nogroup 86] readme.txt
4 directories, 5 files