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

阿瑶酱_6172

阿瑶酱_6172

2026-03-20

933人浏览

原创

tree命令默认未预装于多数linux发行版,需手动安装;显示中文乱码应加-n参数;限深用-l、过滤用-i/-p;存档时去色并禁用统计更适配ci。

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

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 只负责让人一眼看懂“谁在谁下面”。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4016

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1275

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1618

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

9523

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

900

4

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.04

2424

5

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1489

5

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

2023.09.21

4129

3

js生成随机数方法
js生成随机数方法

JavaScript生成随机数的方法,包括使用Math.random()方法生成指定范围内的随机整数、生成随机字符串和生成随机颜色。根据具体需求,可以选择适合的方法来生成随机数,以实现各种功能 。

2023.09.25

2335

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习