Abd*_*red 4 find file-command shell-script
我正在寻找一种仅查找 JPEG 文件的方法/由于我对 Linux 的了解有限,我来到了这一点:
find /
file
在每个找到的路径上执行命令xargs file
file
命令的结果中包含一个 JPEG 字符串,我想也许可以通过 IF 语句以某种方式仅过滤 JPEG: If (JPEG 包含在文件命令的输出中) {show argument of file}再一次:
find / | xargs file | "If statement"
Run Code Online (Sandbox Code Playgroud)
您能否纠正我,给我一个提示如何执行任务或给出解决方案?
如果您想列出包含 JPEG 图像的文件而不管文件名中的扩展名,您可以使用find
+file
列出 mime 类型的文件image/jpeg
:
find . -type f -exec sh -c '
file --mime-type "$0" | grep -q image/jpeg\$ && printf "$0\n"
' {} \;
Run Code Online (Sandbox Code Playgroud)
或者
find . -type f -exec sh -c '
mt=$(file --brief --mime-type "$0")
[ -z "${mt#image/jpeg}" ] && printf "$0\n"
' {} \;
Run Code Online (Sandbox Code Playgroud)
首先,您可以打印带有.jpg
文件扩展名的文件:
sudo find / -name *.jpg -print
Run Code Online (Sandbox Code Playgroud)
查看它的行为,修改以适应,然后您可以将输出通过管道传输到另一个函数中,而不仅仅是打印输出(如果您愿意)。例如,如果您还想允许.JPG
:
sudo find / -iname "*.jpg"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5279 次 |
最近记录: |