在运行photorc来恢复意外格式化数据分区后的照片后,我只剩下100个目录,其中包含恢复的图像。
使用Identity命令,我可以找到所有感兴趣的照片(大于500x500)。
但是当我使用xargs将输出推到mv命令时,我得到的许可被拒绝了!我在用sudo!

sudo find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '{if ($1>300 || $2>300) print $3}' | xargs -I '{}' mv '{}' /home/simon/decent_size/

输出:
mv: cannot move ‘./recup_dir.3042/f848232448.jpg’ to ‘/home/simon/decent_size/f848232448.jpg’: Permission denied
mv: cannot move ‘./recup_dir.3042/f848239136.jpg’ to ‘/home/simon/decent_size/f848239136.jpg’: Permission denied
mv: cannot move ‘./recup_dir.571/f703451808.jpg’ to ‘/home/simon/decent_size/f703451808.jpg’: Permission denied
mv: cannot move ‘./recup_dir.2771/f835113704.jpg’ to ‘/home/simon/decent_size/f835113704.jpg’: Permission denied
...

谢谢你们的帮助:)

最佳答案

这是因为您的find命令使用根权限运行,而不是您的xargs
你想要这样的东西:

sudo find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '{if ($1>300 || $2>300) print $3}' | sudo xargs -I '{}' mv '{}' /home/simon/decent_size/

我没有检查你命令的逻辑,只是修正了“拒绝许可”的问题。

关于linux - Linux:查找大于500x500的图像,然后移至某个文件夹(Find + Xargs + Mv),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22878469/

10-16 06:58