Abd*_*red 9 command-line find jpeg
从 Windows 切换到 Linux 时,我注意到的第一件事是,Linux 没有严格的命名约定,也没有强制性的文件扩展名,例如 .bmp、.jpg、.exe 等。因此,我无法通过文件名本身来判断其文件格式。
如果我的文件系统上的所有 JPEG 文件都有 .jpg 扩展名,我可以通过以下方式简单地找到所有 JPEG 文件:
find / -type f -name "*.jpg"
Run Code Online (Sandbox Code Playgroud)
但如果不是这种情况,我不知道如何找到所有 JPEG 文件。
小智 19
如果要抓取目录和子目录:
find /home/place/to/crawl -type f -exec file --mime-type {} \; | awk '{if ($NF == "image/jpeg") print $0 }'
Run Code Online (Sandbox Code Playgroud)
它能做什么?
file
image/jpeg
awk
编辑:添加@Franklin 提示,以-i
在输出文件类型时使用文件以使用 mime 字符串标准。这将减少 jpeg 单词的误报。
编辑 2:添加了 @don_crissti 提示。现在只过滤最后一列,awk
如果与 匹配,则打印整行image/jpeg
。将file
开关更改--mime-type
为抑制字符集信息