Я потерял много файлов через пакетную передачу по одному и тому же пункту назначения. Мои файлы все еще на диске? - PullRequest
2 голосов
/ 10 апреля 2019

Я пытался пакетно переместить изображения из папки в новые папки, названные по размеру изображения (px) изображений. Я использовал эту команду, чтобы сделать это:

awk '{system("mv "$1 " ./"$4)}' sizes.log

Содержимое sizes.log было много строк в этом формате:

f122441728.jpg        Exif.Photo.PixelXDimension                   Long        1  4032

Теперь мне больно известно о недостатках этого метода. Я не проверял свою команду и переместил много файлов в файл «1», потому что столбец $ 4 равен «1» во всех строках размера .log. Я понял, что что-то было отключено и прервал команду, но около 500 снимков были удалены.

Я не уверен, как работает mv, но, насколько я понимаю, это произошло: В каждой строке файл из столбца $ 1 был переименован в «1», но блоки данных файла изображения остались на диске.

Это предположение верно? Есть ли у меня шанс на восстановление с фоторецептом например?

Мне бы пришлось заново собрать RAID на другой машине, но с этим мне повезло раньше. Я сортировал серию фотоотчетов по другой ошибке ..

редактирование: После того, как я нашел резервную копию своих файлов (ууу!), Я пересмотрел процедуру, которая привела меня к моей ошибке, и использовал эти команды для сортировки моих файлов по папкам, названным по размеру изображений.

identify -format "%f %w\n" *.jpg >> siz.log

awk '{system("mkdir ./"$2"/")}' siz.log

awk '{system("mv "$1 " ./"$2"/")}' siz.log

обратите внимание на косую черту, это то, что раньше доставляло мне неприятности. Я пропустил его и не получил сообщений об ошибках от mv.

1 Ответ

0 голосов
/ 10 апреля 2019

Если файлы все еще существуют и не были случайно удалены, попробуйте использовать команду find для рекурсивного поиска корневого каталога. Это предполагает, что у вас есть имя некоторых из отсутствующих файлов. Например, если вы знаете, что один из файлов был назван abc.jpg, вы можете выполнить поиск следующим образом:

find / -name "abc.jpg"

Подробнее см. этот канонический ответ на команду find.

...