You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Linux的tree命令如何按文件类型排序?tree --help中未找到对应选项

如何用tree命令按文件类型排序

嘿,我懂你的烦恼!tree命令的默认帮助里确实没给出直接按文件类型排序的选项,不过咱们可以通过管道结合其他命令来实现这个需求,下面给你几个实用的方法:

方法1:结合sort命令按文件后缀排序

先让tree输出完整的文件路径,再用sort命令按后缀分组:

tree -f | sort -t '.' -k 2
  • tree -f:让tree输出每个文件/目录的完整路径,方便后续排序识别后缀
  • sort -t '.' -k 2:以.作为分隔符,按第二列(也就是文件后缀)排序

注意:没有后缀的文件(比如README、无后缀配置文件)会排在最前面,目录也会混在结果里,如果想区分目录和文件,看下面的方法。

方法2:先显示目录树形,再按类型排序文件

如果希望先展示所有目录的树形结构,再按类型列出文件,可以分两步执行:

# 先输出目录的树形结构
tree -d
# 再输出所有文件并按后缀排序
tree -f --noreport | grep -v '/$' | sort -t '.' -k 2
  • tree -d:只显示目录的树形结构
  • tree -f --noreport:输出完整路径并去掉最后的统计行数
  • grep -v '/$':过滤掉以/结尾的目录,只保留文件
  • 最后用sort按后缀排序

方法3:用find命令替代(更灵活的排序)

如果不需要严格的树形结构,只是想按类型罗列文件/目录,find命令配合sort会更灵活:

find . -print | sort -t '.' -k 2

这个命令会列出所有文件和目录,按后缀排序,缺点是没有tree的树形缩进,但胜在简单直接。

总的来说,tree本身确实没有内置的按类型排序参数,但通过和sort、grep这些工具配合,完全能实现你想要的效果~

内容的提问来源于stack exchange,提问作者HIPPO LD

火山引擎 最新活动