Во-первых: прекратите использовать этот диск сейчас . Это нормально, чтобы перемонтировать его только для чтения, просто убедитесь, что больше не пишите. Да, вы удалили фотографии. Они могут быть восстановлены, но чем больше вы продолжаете использовать этот диск, тем меньше у вас шансов что-либо восстановить.
Ваша команда RAN mv pic1.jpg pictures
, mv pic2.jpg pictures
и т.д. Каждый вызов mv
переписал в данный момент файл с именем pictures
другой картиной.
Перемещение файла (в той же файловой системе) означает отсоединение его от каталога, в котором он находится, и присоединение его к целевому каталогу под новым именем. Таким образом, никакие данные файла не были изменены или удалены этой командой, только записи каталога для исчезнувших изображений.
Вы можете запустить инструмент, который ищет свободное место в вашей файловой системе и ищет вещи, похожие на jpegs. К счастью, каждый файл JPEG начинается с распознаваемого заголовка. Инструменты, которые ищут удаленный контент, называются инструментами вырезания . В Ubuntu есть несколько таких, в том числе recoveryjpeg , прежде всего , testdisk ... Если фотографии находятся в отдельном домашнем разделе или на внешнем диске, установите один или несколько из этих пакетов и укажите их в разделе с удаленными изображениями.
Если фотографии находятся на вашем системном диске, вам необходимо немедленно прекратить использование вашей системы. Используйте другой компьютер для загрузки живого CD или USB и загрузитесь с него. Любой из живых компакт-дисков, которые включают testdisk, должен соответствовать всем требованиям, но некоторые легче использовать, чем другие. System Rescue CD - хороший компакт-диск для восстановления системы. Ubuntu Rescue Remix может быть более привычным для пользователя Ubuntu.
Для дальнейшего использования возьмите в привычку использовать, mv -i
если вы не хотите перезаписывать файлы. Возможно, у вас уже есть псевдоним для mv
, но он срабатывает только тогда, когда вы печатаете mv
непосредственно в командной строке, а не когда mv
вызывается скриптом или find
командой.
$ : >pictures
$ mv -i foo.jpg pictures
mv: overwrite `pictures'?
Кроме того, если вы поставите /
после имени, которое должно быть именем каталога, вы получите сообщение об ошибке, если каталог не существует или если существует файл с таким именем, который не является каталогом.
$ : >pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
$ rm pictures
$ mv foo.jpg pictures/
mv: cannot move `foo.jpg' to `pictures/': Not a directory
Чтобы избежать ловушек find
, вы можете использовать рекурсивную функцию обхода каталога bash. Вы должны сначала включить его с помощью команды shopt -s globstar
(вы можете добавить эту строку в вашу ~/.bashrc
. Затем:
mv **/*.jpg pictures/
(Обратите внимание, что в bash **/
также проходит символические ссылки на каталоги, и отключить это невозможно. Если вам нужен рекурсивный обход, который не просматривает символические ссылки на каталоги, используйте zsh или find.)