我试图将图像从一个文件夹批量移动到以图像的图像(px)大小命名的新文件夹。我使用此命令来做到这一点:
awk '{system("mv "$1 " ./"$4)}' sizes.log
sizes.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的错误消息。
答案 0 :(得分:0)
如果文件仍然存在并且没有被误删除,请尝试使用find
命令以递归方式搜索根目录。这假定您具有某些丢失文件的名称。例如,如果您知道其中一个文件名为abc.jpg
,则可以按以下方式搜索:
find / -name "abc.jpg"
有关详细信息,请参见find
命令上的this规范答案。