You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统中如何递归获取所有文件的扩展名列表?

问题:Mac系统递归获取完整文件扩展名列表

需求是在Mac系统中递归搜索所有文件,获取包含tar.gz、txt、pdf、png、jpg等的完整扩展名列表。

已尝试以下命令,但仅得到"txt",无法获取其他扩展名:

find . | grep '\.'| tail -c 4  
ls -lR | grep '\.'| tail -c 4

示例文件目录结构:

$ tree
.
├── foobar.tar.gz
├── 02_quest_cbc.pdf
├── 16_iron_panel.pdf
├── 16_lots.pdf
├── 18_cbc.pdf
├── 20_kaiser.txt
├── com
│   ├── 1.png
│   ├── 2.png
│   ├── project.txt
│   └── readme.txt
└── txt

1 directory, 11 files

解决方案

方法1:find+awk组合(支持多后缀,自动去重)

find . -type f | awk -F. '
    NF>1 {
        ext = substr($0, index($0, "."))
        sub(/^\./, "", ext)
        print ext
    }
' | sort | uniq
  • find . -type f:递归遍历所有文件(跳过目录)
  • awk逻辑:只处理带扩展名的文件,提取从第一个.开始的完整后缀,去掉开头的.后输出
  • sort | uniq:对结果排序并去重,避免重复输出相同扩展名

方法2:find+sed组合(更简洁)

find . -type f -name "*.*" | sed -E 's/^.*\.//' | sort | uniq
  • find . -type f -name "*.*":只筛选带.的文件
  • sed -E 's/^.*\.//':用正则替换掉最后一个.之前的所有内容,直接得到完整扩展名
  • sort | uniq:排序去重

执行上述命令后,示例目录会输出:

pdf
png
tar.gz
txt

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:22:42