Я только что удалил все с помощью команды find -exec mv?

Я пытался понять это самостоятельно. Вот команда, которую я использовал в терминале:

find . -name "*.jpg" -exec mv {} pictures \;

Сначала я не создал каталог с именем картинки. Произошел файл с именем pictures.gif. Нашел ли он файлы, затем переписал их при перемещении?

Что это за файл pictures.gif, созданный в результате выполнения этой команды?

Возможно, файлы еще где-то на диске?

26
задан 11 December 2013 в 17:45

2 ответа

Во-первых: прекратите использовать этот привод сейчас . Это нормально, чтобы перемонтировать его только для чтения, просто убедитесь, что больше не пишите. Да, вы удалили фотографии. Они могут быть восстановимыми, но чем больше вы продолжаете использовать этот диск, тем меньше у вас шансов что-либо восстановить.

Ваша команда выполняла mv pic1.jpg pictures, mv pic2.jpg pictures и т. Д. Каждый вызов mv заменял файл, который в настоящее время называется pictures, другим рисунком.

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

Вы можете запустить инструмент, который ищет свободное место в вашей файловой системе и ищет вещи, похожие на jpegs. К счастью, каждый файл JPEG начинается с распознаваемого заголовка. Инструменты, которые ищут удаленный контент, называются инструментами для вырезания . В Ubuntu есть несколько, в том числе recoverjpeg , foremost , testdisk ,… Если фотографии находятся на отдельном домашнем разделе или на внешнем диске, установите один или более из этих пакетов и укажите их на раздел с удаленными изображениями.

Если фотографии находятся на системном диске, необходимо немедленно прекратить использование системы. Используйте другой компьютер для загрузки живого CD или USB и загрузитесь с него. Любой из live 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.)

0
ответ дан 11 December 2013 в 17:45

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

В следующий раз, когда вы имеете в виду каталог, добавьте к нему косую черту и добавьте опцию -i, чтобы запросить подтверждение если файл уже существует:

find -name "*.jpg" -exec mv -i {} pictures/ {} \;
0
ответ дан 11 December 2013 в 17:45

Другие вопросы по тегам:

Похожие вопросы: