我试图将图像从文件夹批量移动到以图像的图像 (px) 大小命名的新文件夹中。我使用这个命令来做到这一点:
awk '{system("mv "$1 " ./"$4)}' sizes.log
size.log 的内容是这种格式的多行:
f122441728.jpg Exif.Photo.PixelXDimension Long 1 4032
我现在痛苦地意识到这种方法的缺点。我没有测试我的命令并将许多文件移动到文件“1”中,因为在 size.log 的所有行中,第 4 列都是“1”。我意识到有问题并中止了命令,但删除了大约 500 张图片。
我不确定 mv 是如何工作的,但据我了解,这发生了:在每一行中,列 $1 中的文件被重命名为“1”,但图像文件的数据块仍保留在磁盘上。
这个假设正确吗?例如,我有机会通过 photorec 恢复吗?
我必须在另一台机器上重新组装一个 RAID,但这是我以前很幸运的事情。我正在从另一个错误中整理出一系列 photorec..
编辑: 在我找到我的文件的备份后(耶!)我重新审视了导致我出错的过程,并使用这些命令将我的文件分类到以图片的图像大小命名的文件夹中。
identify -format "%f %w\n" *.jpg >> siz.log
awk '{system("mkdir ./"$2"/")}' siz.log
awk '{system("mv "$1 " ./"$2"/")}' siz.log
注意尾部的斜线,这就是我之前遇到麻烦的原因。我错过了它,并且没有收到来自 mv 的错误消息。