我有一个名为 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
在参数命令。