Linux中查看目录树形结构的多种方法
在Linux中查看目录树形结构有多种方法,以下是几种常用方案:
1. tree 命令(最推荐)
tree 是最直观、最强大的目录树显示工具。
安装方法:
# Debian/Ubuntusudo apt install tree# CentOS/RHELsudo yum install tree# Fedorasudo dnf install tree# macOSbrew install tree
常用用法:
# 显示当前目录树tree# 显示指定目录tree /path/to/directory# 限制层级深度(显示2层)tree -L 2# 只显示目录,不显示文件tree -d# 显示文件大小tree -h# 显示隐藏文件tree -a# 过滤特定文件类型(只显示 .txt 文件)tree -P "*.txt"# 排除某些目录(排除 node_modules 和 .git)tree -I 'node_modules|.git'
2. find 命令(无需安装)
如果系统没有 tree,可以使用 find 实现类似效果:
# 基本树形结构find . -print | sort | sed 's;[^/]*/;|____;g;s;____|; |;g'# 更简洁的版本(只显示目录)find . -type d | sort | sed 's;[^/]*/;|____;g;s;____|; |;g'# 限制深度find . -maxdepth 3 -type d
3. ls 命令组合
使用 ls 的递归选项:
# 递归列出目录结构ls -R# 更易读的树形格式ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g'
4. du 命令
查看目录结构并显示磁盘使用情况:
# 显示目录树及大小du -h --max-depth=2# 更易读的树形du -h --max-depth=2 | sort -hr
5. 结合 awk 的自定义方案
一个实用的单行命令:
find . -type d -print | awk '{n=split($0,a,"/"); for(i=1;i<n;i++) printf " "; print a[n]}'
总结对比
建议:如果经常需要查看目录树,强烈推荐安装 tree 命令,它能提供最清晰、最实用的树形视图。