ImageMagick - 如何避免使用 mogrify 覆盖现有文件?

Hyk*_*nna 2 bash imagemagick mogrify macos

我的这些文件位于./

a.jpg
b.jpg
256/a.jpg
Run Code Online (Sandbox Code Playgroud)

我正在运行以下命令将文件转换为 256px:

a.jpg
b.jpg
256/a.jpg
Run Code Online (Sandbox Code Playgroud)

但该命令始终会覆盖 中的现有文件256,例如256/a.jpg. 尽管图像看起来相同,但git diff仍会检测到文件中的更改。如何避免使用 覆盖现有文件mogrify

版本:

ImageMagick 7.0.10-23 Q16 x86_64 2020-07-05
64bit Mac OS X 10.15.6 19G73
Run Code Online (Sandbox Code Playgroud)

编辑:

我想要的结果是:

a.jpg
b.jpg
256/a.jpg (Unchanged)
256/b.jpg (Created)
Run Code Online (Sandbox Code Playgroud)

@Sam Forbis 的回答
使用convert -resize 256x256 *.jpg -append ./256/*.jpg将导致:

a.jpg
b.jpg
256/a.jpg (Unchanged)
255/a-0.jpg (Created)
256/a-1.jpg (Created)
Run Code Online (Sandbox Code Playgroud)

Sam*_*bis 5

您应该使用该命令convert而不是mogrify. 从手册页mogrify

Mogrify 会覆盖原始图像文件,而 Convert 会写入不同的图像文件。

看起来输入选项是相同的convert。您只需指定输出选项和输出文件名,如手册页convert所指定:

convert [input-options] input-file [output-options] output-file
Run Code Online (Sandbox Code Playgroud)