使用 tree
命令(推荐工具)
安装方法(部分系统默认未安装):
# CentOS/RHEL sudo yum install tree # Arch/Manjaro sudo pacman -S tree
基础用法:
tree [目录路径] # 不指定路径时显示当前目录
示例输出:
.
├── dir1
│ ├── file1.txt
│ └── subdir
└── dir2
└── script.sh
常用参数:
-d
:仅显示目录-L n
:限制层级深度(如tree -L 2
)-a
:显示隐藏文件-I "pattern"
:排除匹配文件(如tree -I "*.log"
)-o file.txt
:输出到文件
替代方案:ls
与 find
组合
当 tree
不可用时,可通过基础命令模拟目录树:
# 显示当前目录树(含隐藏文件) ls -R # 更清晰的格式(GNU系统): find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
输出示例:
.
|____dir1
| |____file1.txt
| |____subdir
|____dir2
|____script.sh
图形化工具
- Nautilus (GNOME):
文件管理器 > 右键点击目录 > “Open in Terminal” → 使用tree
- Krusader (KDE):
双面板文件管理器,内置目录树视图 - QDirStat:
可视化磁盘占用工具,支持目录树分析(安装:sudo apt install qdirstat
)
脚本自定义输出
生成JSON格式目录树(Python示例):
import os import json def list_dir(path): return {'name': os.path.basename(path), 'children': [ list_dir(os.path.join(path, x)) if os.path.isdir(os.path.join(path, x)) else {'name': x} for x in os.listdir(path) ]} print(json.dumps(list_dir('.'), indent=2))
运行:python3 script.py > tree.json
注意事项
- 权限问题:
- 无权限的目录会显示错误(如
tree: Permission denied
),需用sudo
提权(谨慎使用)。
- 无权限的目录会显示错误(如
- 符号链接处理:
tree -l
可追踪符号链接(可能导致循环引用)。
- 大目录优化:
- 使用
--du -h
显示目录大小(如tree -d --du -h
)。
- 使用
应用场景建议
需求 | 推荐命令 |
---|---|
快速可视化 | tree -L 3 |
仅分析目录结构 | tree -d |
排除特定文件 | tree -I "*.tmp" |
无tree 环境 |
find + sed |
生成结构化数据 | 自定义Python脚本 |
引用说明:
tree
命令文档:Linux Manual Page- POSIX文件系统标准:IEEE Std 1003.1
- 安全实践参考:Linux Filesystem Hierarchy Standard 基于Linux核心工具链测试(Ubuntu 22.04/CentOS 7),遵循开源协议。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9869.html