运行以下脚本:
for i in $(find dir -name "*.jpg"); do
ln -s $i
done
难以置信地为 90% 的文件制作符号链接,并制作剩余 10% 的副本。这怎么可能?
编辑:之后发生的事情是相关的:
这些是我通过 mogrify 旋转的图像的链接,例如
mogrify -rotate 90 link_to_image
似乎链接上的 mogrify 默默地复制了图像,值得商榷的选择,但事实就是如此。
运行以下脚本:
for i in $(find dir -name "*.jpg"); do
ln -s $i
done
难以置信地为 90% 的文件制作符号链接,并制作剩余 10% 的副本。这怎么可能?
编辑:之后发生的事情是相关的:
这些是我通过 mogrify 旋转的图像的链接,例如
mogrify -rotate 90 link_to_image
似乎链接上的 mogrify 默默地复制了图像,值得商榷的选择,但事实就是如此。
如果您想了解有关处理名称中包含空格的文件的更多信息,请跳过第一段
目前尚不清楚问题的根源是什么,我们的假设是问题出在文件名中的空格中:包含它们的文件未正确处理。
真正的问题是 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')" .
(Imagemagick) mogrify 应用于链接删除链接并复制图像
尝试使用单引号:
find dir -name '*.jpg' -exec ln -s "{}" \;