Я пытался понять это самостоятельно. Вот команда, которую я использовал в терминале:
find . -name "*.jpg" -exec mv {} pictures \;
Я не создал каталог с именем картинки в первую очередь. Произошел файл с именем pictures.gif. Нашел ли он файлы, затем переписал их при перемещении?
Что это за файл pictures.gif, созданный в результате выполнения этой команды?
Возможно, файлы еще где-то на диске?
command-line
find
jtnewhou
источник
источник
/
его! Всегда! Тогда это может быть только каталог.Ответы:
Во-первых: прекратите использовать этот диск сейчас . Это нормально, чтобы перемонтировать его только для чтения, просто убедитесь, что больше не пишите. Да, вы удалили фотографии. Они могут быть восстановлены, но чем больше вы продолжаете использовать этот диск, тем меньше у вас шансов что-либо восстановить.
Ваша команда 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
командой.Кроме того, если вы поставите
/
после имени, которое должно быть именем каталога, вы получите сообщение об ошибке, если каталог не существует или если существует файл с таким именем, который не является каталогом.Чтобы избежать ловушек
find
, вы можете использовать рекурсивную функцию обхода каталога bash. Вы должны сначала включить его с помощью командыshopt -s globstar
(вы можете добавить эту строку в вашу~/.bashrc
. Затем:(Обратите внимание, что в bash
**/
также проходит символические ссылки на каталоги, и отключить это невозможно. Если вам нужен рекурсивный обход, который не просматривает символические ссылки на каталоги, используйте zsh или find.)источник
/
послеpictures
во втором наборе примеров? Т.е. не должно ли бытьmv foo.jpg pictures/
(с/
) в обеихmv
командах?Я боюсь, что вы только что потеряли все свои фотографии в этот файл. Можно восстановить некоторые файлы, используя, прежде всего, криминалистические инструменты , но вероятность успеха снижается, чем дольше вы используете носитель (диск). (если быть точным, то чем дольше смонтирована перегородка .)
В следующий раз, когда вы имеете в виду каталог, добавьте в него косую черту и добавьте
-i
опцию для запроса подтверждения в случае, если файл уже существует:источник