1

运行以下脚本:

for i in $(find dir -name "*.jpg"); do
  ln -s $i
done

难以置信地为 90% 的文件制作符号链接,并制作剩余 10% 的副本。这怎么可能?

编辑:之后发生的事情是相关的:

这些是我通过 mogrify 旋转的图像的链接,例如

mogrify -rotate 90 link_to_image

似乎链接上的 mogrify 默默地复制了图像,值得商榷的选择,但事实就是如此。

4

3 回答 3

3

如果您想了解有关处理名称中包含空格的文件的更多信息,请跳过第一段

目前尚不清楚问题的根源是什么,我们的假设是问题出在文件名中的空格中:包含它们的文件未正确处理。

真正的问题是 mogrify 应用于创建的链接,处理它们并使用真实文件进行更改。

没有关于文件名中的空格。

处理名称中带有空格的文件

这是因为文件名中有空格。你可以这样写:

find dir -name \*.jpg | while IFS= read i
do
  ln -s "$i"
done

IFS=这里用于避免剥离前导空格,感谢@Alfe 的提示)。

或使用xargs.

如果名称可能包含“\n”,最好使用print0

find dir -name \*.jpg -print0 | xargs -0 -N1 ln -s

当然,您也可以使用其他方法,例如:

find dir -name '*.jpg' -exec ln -s "{}" \;
ln -s "$(find dir -name '*.jpg')" .
于 2014-01-13T13:24:09.487 回答
1

(Imagemagick) mogrify 应用于链接删除链接并复制图像

于 2014-01-13T14:07:55.577 回答
0

尝试使用单引号:

find dir -name '*.jpg' -exec ln -s "{}" \;
于 2014-01-13T13:31:57.027 回答