如何使用此格式的 ImageMagick 获取所有文件夹和子文件夹中图像的详细信息。
file-name file-location file-format size width height
PS-我已阅读此页面http://www.imagemagick.org/script/escape.php但找不到如何获取文件位置路径以及如何在子文件夹中包含文件。
答案1
我很确定 ImageMagick 本身不会像这样递归工作。您需要围绕它编写一个脚本/程序来处理您的目录结构,并为每个要检查的文件调用一次它。
答案2
以下命令将返回您正在寻找的信息:
identify -format "%f %d %m %b %w %h\n" ./* ./*/*
- 文件目录的转义序列是
%d
。 - 要包含当前文件夹中的所有文件,请使用
./*
(shell 通配符)。 - 要包含所有子文件夹中的所有文件,请使用
./*/*
(shell 通配符)。
(您没有说明您使用的是哪种操作系统。以上内容适用于 Linux、Unix 和 Mac OS X。对于 Windows,使用.\*.*
和.\*.*\*.*
作为通配符。)
注意力!,如果您的文件夹中有非图像文件或 PDF 文档,此命令可能会运行很长时间。非图像文件将产生类似以下的错误消息:
identify: no decode delegate for this image format `EXE' @ error/constitute.c/ReadImage/501.
可以通过将所有错误消息重新重定向至 来避免这种情况/dev/null
。
因此使用这个变体可能会更好:
identify \
-format "%f %d %m %b %w %h\n" \
*.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif} \
*/*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
2>/dev/null
以下是 Mac OS X 的一个例子:
delta.jpg #12649876 JPEG 17441B 307 205 CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780 HFnCz.jpg #21270389 JPEG 356748B 1600 1195 合并.jpg #21270389 JPEG 528221B 1600 1195 res.jpg #26408022 JPEG 57546B 603 300 红色-500x2000.jpg #26951336 JPEG 6288B 500 2000 已调整大小的红色-2000x2000.jpg #26951336 JPEG 7430B 1000 1000 大边-25.jpg #27290574 JPEG 98916B 1024 288 大.jpg #27290574 JPEG 19216B 1024 576 double.jpg #27290574 JPEG 35076B 480 270 小.jpg #27290574 JPEG 20716B 720 404
#27290574
(是的,我确实在具有名为 的子目录和类似的目录中运行了此命令#26951336
......)
您可能希望输出看起来更像表格。为此,请通过管道传输结果column -t
。然后尝试以下操作:
identify \
-format "%f %d %m %b %w %h\n" \
*.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif} \
*/*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
2>/dev/null | column -t
我的情况的结果是:
delta.jpg #12649876 JPEG 17441B 307 205 CMYK_separation_–_maximum_black.jpg #21270389 JPEG 1453360B 1600 4780 HFnCz.jpg #21270389 JPEG 356748B 1600 1195 合并.jpg #21270389 JPEG 528221B 1600 1195 res.jpg #26408022 JPEG 57546B 603 300 红色-500x2000.jpg #26951336 JPEG 6288B 500 2000 已调整大小的红色-2000x2000.jpg #26951336 JPEG 7430B 1000 1000 大边-25.jpg #27290574 JPEG 98916B 1024 288 大.jpg #27290574 JPEG 19216B 1024 576 double.jpg #27290574 JPEG 35076B 480 270 小.jpg #27290574 JPEG 20716B 720 404