Можно ли восстановить файлы после неудачной команды mv?

Я mv * .. в Unix для перемещения всего содержимого каталога в его родительскую папку. В текущем каталоге и в Родительском каталоге была папка под названием "Downloads". Тот, что в родителе, изначально был пуст.

после выполнения этой команды я вернулся к командной строке, но оболочка замерзла, и мне пришлось начать новый сеанс SSH. Теперь папку "Загрузки" в родительский каталог еще пуст, и папку Downloads я пытался двигаться больше не существует.

есть ли способ узнать, где эти файлы, или на данный момент это программа восстановления данных необходимо найти файлы, так как ничего не указывает на них в файловой системе больше?

4
задан noktulo
22.12.2022 20:23 Количество просмотров материала 2396
Распечатать страницу

2 ответа

вы можете запустить проверку файловой системы в случае, если некоторые узлы пропали без вести:

fsck -fyv /dev/sdaX

вы должны изменить sdaX для вашего фактического раздела. Но насколько я знаю, если файл удален, он исчезнет навсегда. Вот почему я всегда бегаю cp и когда я вижу, что все в порядке, я запускаю rm. Вы также можете попробовать с инструментами восстановления данных, но это не 100% гарантирует, что вы восстановить все. после того, как вы идете пустой вы никогда не вернетесь.

3
отвечен arielnmz 2022-12-24 04:11

вы должны быть осторожны с mv и cp: они злопамятны, и вы можете легко потерять файлы, например:-

mv * ..    ; # moves from current directory to parent, overwriting duplicates

Я рекомендую всегда использовать - n или - i для предотвращения перезаписи. Я также предлагаю - v перечислить, что было сделано. Я как-то неправильно набрал (я поймал клавишу#, рядом с return на моей клавиатуре): -

mv * other/#

Это первый файл 'другие/#', а затем перезаписал же '#' с любой другой файл, оставив мне только'#', содержащий последний перемещенный файл! Я больше так не делал.

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

mv -iv * other/*    ; # In TCC, MOVE * other\* would do what I wanted

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

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

если вы не доверяете себе запоминать параметры, добавьте следующую команду (или аналогичную) к любому ~/.bashrc или ~/.bash_aliases: -

alias mv="`which mv` -iv"
1
отвечен AFH 2022-12-24 06:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх