将图像尺寸导出为文本?

将图像尺寸导出为文本?

我有一个名为 a.jpg 的图像。我使用“feh - 基于 imlib2 的图像查看器”来获取有关图像尺寸的信息。我使用的命令是

feh -l a.jpg

结果是

NUM FORMAT  WIDTH   HEIGHT  PIXELS  SIZE(bytes) ALPHA   FILENAME
1   jpeg    1280    960     1228800 91319       -       a.jpg

现在我的目录中有大约 160,000 张图片,我想将这些图片尺寸导出为文本。我使用的命令是:

feh -l * > dimension.txt

但当我这样做时,它说:

bash: /usr/bin/feh: Argument list too long

有人知道正确的命令是什么吗?

答案1

find . -type f -print0 | xargs -0 feh -l > dimension.txt

find 为 subdir 中的所有文件生成文件名(并且以递归方式生成,如果这是个问题,请添加-maxdepth 1到 find 命令中),它会将它们作为以零字节结尾的数据发送到 xargs。我们这样做是为了能够正确处理带有空格(和其他垃圾)的文件名。

xargs 收集名称,将尽可能多的名称放在用于运行 feh 的每个命令行上。它会重新运行命令行,直到所有名称都被使用。

identify软件包中还有一个程序imagemagick,它的作用与命令非常相似feh -l,显示尺寸。这么多文件的用法是相似的,feh -l参数命令。

相关内容