跳转到主内容
极星编程网:以代码为星,赴技术山海!

Linux怎么查看目录树结构_Linux如何使用tree命令展示【方法】

tree命令默认未预装于多数Linux发行版,需手动安装;显示中文乱码应加-N参数;限深用-L、过滤用-I/-P;存档时去色并禁用统计更适配CI。 tree 命令不存在或提示 command not found 很多 Linux 发行版(比如 CentOS、Alpine、最小化安装的 Ubuntu)默认不带
tree
,不是你装错了,是它压根没装。 实操建议: Ubuntu/Debian 系:运行
sudo apt install tree
CentOS/RHEL/Fedora:用
sudo yum install tree
或
sudo dnf install tree
Alpine:
apk add tree
macOS(用 Homebrew):
brew install tree
装完直接敲
tree
就能用了——别试
man tree
,有些系统装完 man 页面也不自带,查帮助用
tree --help
更靠谱。 tree 显示中文乱码或缩进错位 本质是终端字符宽度和 tree 对 Unicode 字符宽度的判断不一致,尤其在含中文、emoji 或全角符号的文件名里特别明显。 常见错误现象:分支线断开、文字重叠、目录名被截断。 实操建议: 加
-N
参数强制按字面显示(禁用自动转义),例如:
tree -N /path
避免用
-i
(不画竖线)配合中文——它会让结构更难读,不是真“修复” 如果仍错位,试试
tree --charset UTF-8
(部分新版支持),但不如
-N
通用 终端本身用等宽字体(如 Fira Code、Source Code Pro),别用微软雅黑这类非等宽中文字体 限制深度、过滤类型、避开特定目录
tree
的实用价值不在“全量展开”,而在快速聚焦。默认递归到底,大项目下卡住或信息过载很常见。 使用场景:看源码结构、查配置目录层级、审计日志路径分布。 实操建议: 限深:用
-L 2
只看两层,
tree -L 3 src/
比
tree src/ | head -50
干净得多 只看目录(不含文件):
-d
,例如查 Docker 构建上下文有哪些子目录:
tree -L 2 -d
排除 node_modules、.git:
-I 'node_modules|.git|__pycache__'
,注意用管道分隔,正则不生效,就是字面匹配 只显示 .js 文件:
-P '*.js'
;多个后缀写成
-P '*.{js,ts}'
(需 shell 支持 brace expansion) 输出为文件或适配 CI 日志阅读 直接终端跑
tree
很方便,但存档、发给同事、塞进 CI 日志时,缺行号、无颜色、编码易出问题。 性能影响:加
--noreport
能少一行统计(如 “32 directories, 147 files”),对自动化脚本更干净。 实操建议: 保存结果:
tree -L 2 --noreport > dir-tree.txt
去色适配纯文本环境(如 GitHub Actions 输出):
tree -C | sed 's/\x1b\[[0-9;]*m//g' > clean.txt
,
-C
开颜色,sed 去 ANSI 转义 想带行号?别 pipe 给
nl
,先重定向再处理,否则 tree 的树形缩进会被 nl 打乱 超大目录慎用
-a
(显示隐藏文件),.git 下几十万对象会拖慢几秒甚至卡死 tree 不是 ls 的替代品,它解决的是“关系可视”,不是“快速列文件”。真正要遍历处理,还是 find + shell 更稳——tree 只负责让人一眼看懂“谁在谁下面”。

相关文章