3

我试图将图像从文件夹批量移动到以图像的图像 (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 的错误消息。

4

1 回答 1

0

如果文件仍然存在并且没有被无意删除,请尝试使用该find命令递归搜索根目录。这假定您有一些丢失文件的名称。例如,如果您知道其中一个文件名为abc.jpg,则可以按如下方式进行搜索:

find / -name "abc.jpg"

有关详细信息,请参阅该命令的规范答案。find

于 2019-04-09T22:03:58.957 回答