Linux系统文件目录:tree 命令查看目录树的常用方法

发布时间:2026/7/6 18:06:51

Linux系统文件目录:tree 命令查看目录树的常用方法 适合 Linux 命令入门 · 项目结构查看 · 文件目录整理关键词tree、目录树、Linux命令、文件过滤、目录层级tree命令用于以树状结构展示目录和文件是查看项目结构、整理文件层级、输出目录清单时非常实用的工具。日常使用时最常用的能力主要有两个按层级展示目录结构和按规则过滤或排序内容。其中控制显示深度最常用的参数是-L N。一、tree 命令是什么核心结论tree 的作用就是把目录和文件按照层级关系“画成一棵树”让目录结构比普通的 ls 输出更直观。tree是 Linux 中用于展示目录结构的命令。相比ls只能列出当前目录内容tree可以递归展示子目录让项目结构一目了然。例如一个项目目录可能包含源码目录、配置文件、构建目录、日志目录等。使用tree后可以清楚看到每个目录下面还有哪些子目录和文件。它特别适合以下场景场景作用查看项目结构快速了解一个项目的目录层级写文档把目录结构复制到 README 或博客中排查文件位置查找某类文件分布在哪些目录下过滤无关目录排除.git、node_modules、build等目录导出目录清单将目录结构保存为txt或md文件二、tree 命令的安装方式2.1 Ubuntu / Debian 系统安装在 Ubuntu 或 Debian 系统中可以使用apt安装。# 更新软件包索引确保能够获取最新的软件包信息sudoaptupdate# 安装 tree 命令并使用 -y 自动确认安装sudoapt-yinstalltree安装完成后可以通过下面的命令验证是否安装成功。# 查看 tree 命令版本验证 tree 是否可用tree--version2.2 CentOS / RHEL 系统安装在 CentOS 或 RHEL 系统中可以使用yum或dnf安装。# 在较老版本 CentOS 中使用 yum 安装 treesudoyum-yinstalltree# 在较新版本 RHEL / CentOS Stream / Fedora 中使用 dnf 安装 treesudodnf-yinstalltree三、tree 命令的基本用法3.1 查看当前目录结构# 在当前目录下输出完整目录树tree执行后tree会从当前目录开始递归展示文件和目录。示例输出如下.├── README.md ├── src │ ├── main.c │ └── utils.c ├── include │ └── utils.h └── build └── main其中符号含义.当前目录├──当前层级中的一个普通分支└──当前层级中的最后一个分支│表示当前目录还有后续分支3.2 查看指定目录结构# 查看 path 目录下的目录树tree path/这里的path/可以替换成实际目录路径例如# 查看 /etc 目录下的目录树tree /etc不过像/etc、/usr、/var这类目录内容较多直接执行可能会输出大量内容。因此在大目录中更推荐配合-L限制深度。四、使用 -L 控制显示深度重点理解-L N 用于限制 tree 展示的目录层级是日常使用 tree 时最重要、最常用的参数。4.1 基本语法# 只展开到第 1 层也就是只展示当前目录的直接子项tree-L1# 只展开到第 2 层也就是展示当前目录、子项以及子项的子项tree-L2# 对指定目录展开 3 层tree-L3path/4.2 深度规则说明tree -L N中的N表示最多展示到第几层。命令展示范围适用场景tree -L 1当前目录 第一层子项快速看目录入口tree -L 2当前目录 子项 子项的子项查看项目大致结构tree -L 3展开到第三层查看较完整的项目目录tree -L 4展开到第四层适合结构不太大的项目起始目录可以理解为第 0 层-L 1展示第 0 层和第 1 层-L 2再多展示一层。例如# 查看当前项目的二级目录结构tree-L2这类命令非常适合用来查看项目骨架而不会把所有深层文件全部刷出来。五、tree 常用参数说明5.1 常用选项清单参数作用示例-a显示隐藏文件tree -a-d只显示目录不显示文件tree -d-f显示完整路径tree -f-h以人类可读方式显示文件大小tree -h--du显示目录聚合大小tree -h --du--dirsfirst目录排在文件前面tree --dirsfirst--sortsize按文件大小排序tree --sortsize-t按修改时间排序tree -t-U不排序按目录原始顺序输出tree -U-I排除匹配项tree -I node_modules.git’-P只显示匹配项tree -P *.c--prune过滤后裁掉空目录tree -I build --prune-o将结果输出到文件tree -o tree.txt--filelimit限制单个目录中文件数量tree --filelimit 200-C强制彩色输出tree -C-n禁用彩色输出tree -n5.2 隐藏文件与目录显示Linux 中以.开头的文件或目录默认属于隐藏项例如.git、.env、.vscode。# 显示普通文件、目录以及隐藏文件tree-a如果只想看隐藏项是否存在可以配合层级限制# 展示当前目录下第一层内容包括隐藏文件tree-a-L15.3 只显示目录骨架# 只显示目录不显示文件tree-d如果只想看项目结构而不关心具体文件可以使用# 只显示三级目录骨架tree-d-L3-d很适合用于分析项目模块划分因为它会把大量文件隐藏掉只保留目录层级。5.4 显示文件大小与目录总大小# 显示文件大小并使用 K、M、G 等单位展示tree-h如果希望目录也显示聚合大小可以加入--du。# 显示文件大小并统计目录总占用tree-h--du对于大项目可以限制层级# 查看当前目录二级范围内的大小分布tree-L2-h--du5.5 排序显示# 按文件修改时间排序tree-t# 按文件大小排序tree--sortsize# 不进行排序按照文件系统原始顺序输出tree-U常见排序方式如下排序方式命令说明按名称排序默认行为最常见按修改时间排序tree -t适合找最近修改文件按大小排序tree --sortsize适合排查大文件不排序tree -U速度可能更快六、tree 的过滤用法6.1 使用 -I 排除文件或目录注意-I 表示 ignore也就是排除匹配项。多个匹配模式之间可以使用竖线 | 分隔并且建议用引号包起来避免被 Shell 提前解析。# 排除 .git、node_modules、dist、build 目录tree-I.git|node_modules|dist|build常见项目中下面这些目录经常需要排除目录或文件说明.gitGit 版本管理目录node_modules前端依赖目录通常很大dist打包输出目录build编译生成目录__pycache__Python 缓存目录.ideaJetBrains 系列 IDE 配置目录.vscodeVS Code 配置目录6.2 使用 -P 只显示匹配项-P用于只显示符合模式的文件或目录。# 只显示 .c 文件tree-P*.c# 只显示 Markdown 文件tree-P*.md如果使用-P后出现很多空目录可以配合--prune。# 只显示 Markdown 文件并裁掉空目录tree-P*.md--prune6.3 使用 --prune 裁掉空目录当使用-I或-P过滤后某些目录可能已经没有可显示内容但仍然被保留下来。此时可以使用--prune自动裁剪空目录。# 排除常见无关目录并自动裁掉空目录分支tree-I.git|node_modules|dist|build--prune--prune的作用是让输出更干净特别适合写文档或博客时展示项目结构。七、典型场景示例7.1 查看项目二级结构# 查看当前项目二级目录结构目录优先显示并排除常见构建产物tree-L2--dirsfirst-Inode_modules|dist|build|.git--prune这个命令适合查看前端项目、后端项目或普通工程项目的大体结构。参数含义如下参数含义-L 2只展开到第二层--dirsfirst目录排在文件前-I排除指定文件或目录--prune裁掉过滤后为空的目录7.2 只看目录骨架# 只显示目录结构并展开到第三层tree-d-L3这个命令适合分析项目模块不会被大量文件干扰。7.3 查看文件大小# 以人类可读方式显示文件大小并统计目录总占用tree-L2-h--du其中参数含义-h使用 K、M、G 等单位显示大小--du显示目录聚合大小-L 2限制展示深度避免输出过多7.4 打印完整路径并导出结果# 打印完整路径排除 .git 和 __pycache__并把结果保存到 tree.txttree-L2-f-I.git|__pycache__--prune-otree.txt这个命令适合把目录结构保存下来后续可以粘贴到文档、博客或项目说明中。7.5 限制大目录输出数量# 当某个目录中文件过多时限制每个目录最多展示 200 个文件tree-L2--filelimit200在大目录下使用 tree 时一定要优先加-L或--filelimit否则可能输出非常多内容。7.6 配合 less 查看超宽输出# 使用 less 查看 tree 输出并用 -S 禁止自动换行tree-L2|less-S这里的less -S表示不自动折行。如果某一行太长可以用键盘左右方向键横向滚动查看。八、常见问题与排障8.1 tree 输出太多怎么办优先使用下面几种方式控制输出规模# 限制显示深度tree-L2# 排除无关目录tree-Inode_modules|dist|build|.git# 限制单个目录最大展示文件数量tree--filelimit200大目录不要直接运行tree否则很容易刷屏甚至影响终端使用体验。8.2 -I 和 -P 为什么要加引号-I和-P后面的模式经常会用到*、?、|等通配符。如果不加引号Shell 可能会提前把这些字符解析掉导致tree收到的规则不是你想要的规则。推荐写法# 推荐写法过滤规则使用引号包起来tree-Inode_modules|dist|build|.git不推荐写法# 不推荐写法没有引号时通配符可能被 Shell 提前展开tree-Inode_modules|dist|build|.git8.3 为什么过滤后还有空目录这是因为-I或-P只负责过滤内容不一定自动删除空目录分支。解决方法是加上--prune。# 过滤后自动裁掉空目录tree-Inode_modules|dist|build|.git--prune8.4 如何只统计目录数量tree输出末尾通常会自动显示统计信息例如# 只显示目录并在末尾输出目录数量统计tree-d输出末尾可能类似12directories如果显示文件和目录末尾可能类似12directories,38files九、常用命令速查表需求命令查看当前目录树tree只展开一层tree -L 1展开二级项目结构tree -L 2只显示目录tree -d显示隐藏文件tree -a目录排在文件前tree --dirsfirst排除指定目录tree -I node_modules.git’过滤后裁掉空目录tree -I node_modules.git’ --prune只显示指定文件tree -P *.md --prune显示文件大小tree -h显示目录总大小tree -h --du输出到文件tree -o tree.txt使用分页器查看tree -L 2 | less -S十、总结总结tree 命令的核心作用是把文件和目录按层级关系展示出来。日常使用时重点掌握 -L 控制深度、-I 排除内容、-P 匹配内容、--prune 裁剪空目录、-d 只看目录骨架即可。对于普通使用场景最推荐记住这一条命令# 查看项目二级结构目录优先显示排除常见无关目录并裁掉空目录tree-L2--dirsfirst-Inode_modules|dist|build|.git|__pycache__--prune它适合大多数项目结构查看、文档编写和目录整理场景。掌握这条命令后再根据需要添加-a、-d、-h、--du、-o等参数就能覆盖绝大多数tree的实际使用需求。

相关新闻