运行以下脚本:
for i in $(find dir -name "*.jpg"); do
ln -s $i
done
令人难以置信地为90%的文件制作了符号链接,并制作了剩余10%的副本。怎么可能?
修改:之后发生的事情是相关的:
这些是我通过mogrify旋转的图像链接,例如
mogrify -rotate 90 link_to_image
似乎mrurify在一个链接上默默地制作了一个图像的副本,有争议的选择,但就是这样。
答案 0 :(得分: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')" .
答案 1 :(得分:1)
(Imagemagick)mogrify应用于链接删除链接并制作图像的副本
答案 2 :(得分:0)
尝试使用单引号:
find dir -name '*.jpg' -exec ln -s "{}" \;