欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

ls 显示的是当前目录,,要显示目录树 是什么命令 AG chatgpt 有大用

要显示目录的树形结构(包含子目录和文件的层级关系),可以使用 tree 命令。


1. tree 命令

作用:以树状结构可视化目录内容(显示文件和子目录的层级关系)。
安装(若系统未预装):

bash
# Ubuntu/Debian sudo apt install tree # CentOS/RHEL sudo yum install tree # macOS(使用 Homebrew) brew install tree

基本用法

bash
tree [选项] [目录]

2. 常见选项

选项作用示例
-L N限制显示的目录深度(N 为层级)tree -L 2(只显示2层)
-d仅显示目录(不显示文件)tree -d
-a显示隐藏文件(.开头)tree -a
-f显示完整路径tree -f
-h显示文件大小(人类可读格式)tree -h
-I "模式"忽略匹配的文件/目录(支持通配符)tree -I "*.log"

3. 使用示例

① 显示当前目录的树状结构

bash
tree

输出示例:

.
├── dir1
│   ├── file1.txt
│   └── subdir
├── dir2
│   └── file2.log
└── README.md

├── 表示分支,└── 表示最后的条目)


② 仅显示目录(不显示文件)

bash
tree -d

输出:

.
├── dir1
│   └── subdir
└── dir2

③ 限制显示深度(如只显示2层)

bash
tree -L 2

④ 显示文件大小 + 完整路径

bash
tree -hf

输出:

.
├── [ 4.0K]  ./dir1
│   ├── [  30]  ./dir1/file1.txt
│   └── [ 4.0K]  ./dir1/subdir
├── [ 4.0K]  ./dir2
│   └── [ 120]  ./dir2/file2.log
└── [ 200]  ./README.md

4. 替代方案(若无 tree 命令)

如果系统没有 tree,可用 find 或 ls -R 模拟简易树形结构:

bash
# 用 find 实现(显示所有文件) find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' # 用 ls -R 递归显示 ls -R

(但格式不如 tree 直观)


总结

  • tree 是显示目录树的最佳工具,直观易读。

  • 通过选项可控制深度、显示文件/目录、忽略特定文件等。

  • 若无 tree,可临时用 find 或 ls -R 替代。


普通分类: