tree命令是Linux下导出目录结构最直接可靠的方式,需手动安装后用-I排除干扰项、-o避免编码问题、-L限制深度、--dirsfirst排序、-F标注类型,并注意其不兼容Windows原生命令且默认不显示隐藏文件。

tree 命令是 Linux 下导出目录结构为纯文本最直接、最可靠的方式,无需安装 GUI 工具或依赖 VSCode 插件。只要 tree 已安装(绝大多数发行版默认不带,需手动装),一条命令就能生成可读性强、层级清晰的文本树。
确认系统已安装 tree
多数 Linux 发行版默认不预装 tree,运行 tree --version 报 command not found 就得先装:
- Debian/Ubuntu:
sudo apt install tree - CentOS/RHEL/Fedora:
sudo yum install tree或sudo dnf install tree - Arch/Manjaro:
sudo pacman -S tree
装完再执行 tree --version 确认输出类似 tree v2.1.1 即可。
tree -I 排除 node_modules、.git 等干扰项
真实项目里直接跑 tree 会卡死或输出巨长——因为 node_modules 动辄上万文件。-I 参数就是干这个的:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
tree -I "node_modules|.git|.DS_Store|dist|build":排除多个目录,用竖线|分隔,注意无空格 -
-I匹配的是**基名**(即最后一级目录/文件名),不是完整路径,所以src/node_modules也会被排除 - 若要忽略大小写,加
--ignore-case,例如tree -I "NODE_MODULES|.GIT" --ignore-case - 配合
--prune可自动隐藏被完全排除后的空父目录,让结构更干净
tree -o 直接输出到文件,避免重定向乱码
用 > 重定向(如 tree > out.txt)在某些终端或中文路径下可能产生编码问题;-o 是 tree 原生命令,更稳妥:
-
tree -I "node_modules|.git" -o structure.txt:生成 UTF-8 编码的structure.txt,中文路径显示正常 - 想限制深度(比如只看前 3 层结构):加
-L 3,即tree -L 3 -I "node_modules" -o structure.txt - 想让目录排在文件前面(更符合阅读直觉):加
--dirsfirst - 加
-F可在条目后标类型(/表示目录,*表示可执行),方便快速识别
Windows/macOS 用户注意参数差异
Linux 的 tree 和 Windows 自带的 tree 命令**不兼容**:Windows 版没有 -I、-o、-L 等参数,macOS 的 tree(通过 Homebrew 安装)则基本与 Linux 一致。如果你在跨平台协作中生成结构文档:
- 别用 Windows CMD 的
tree /f > x.txt输出去给 Linux 同事看——格式、编码、过滤能力都不同 - 统一用 Linux/macOS 的
tree命令,并把常用参数写进脚本(如gen-tree.sh),避免每次手敲漏掉-I - 特别注意:Linux
tree默认不显示隐藏文件(.env、.prettierrc等),需要显式加-a才能包含它们
tree 输出的是“当前磁盘视图”,不是 VSCode 的 files.exclude 视图**。你删掉 -I "dist",它就真会扫进去;你没加 -a,它就真不会显示 .gitignore。导出结构用于文档或交接时,务必确认参数和实际需求对齐——少一个 -I,可能多出两万行无关内容。

















