Можно ли восстановить файлы / каталоги, удаленные с помощью rm?

55

Можно ли восстановить файлы / каталоги, которые удаляются из терминала, используя rm и rm -r ?. Если файл удаляется из графического интерфейса, его можно восстановить из корзины, но как восстановить файл, если он удален с помощью утилиты rm ?.

    
задан user3215 13.10.2010 в 08:37
источник

6 ответов

53

С этой целью я использую пакет trash-cli и следующий псевдоним в своем ~/.bashrc

alias rm=trash

Файлы, которые вы удаляете, будут перемещены в корзину, и вы можете увидеть их в trautcan nautilus.

Вы всегда можете получить доступ к реальному rm , используя один из следующих способов:

command rm something
'rm' something
\rm something

Есть также команды для доступа к trashcan из терминала, trash-list , restore-trash (или trash-restore ), trash-empty , устанавливаемые из пакета trash-cli (тогда см. их страницы руководства).

В последнее время не рекомендуется использовать такой псевдоним для суперпользователя, поскольку он может помешать работе системы.

    
ответ дан enzotib 13.10.2010 в 09:08
23

Удаление его с терминала удаляет его навсегда - восстановление очень сложно, а иногда и невозможно.

Если ваш тип раздела равен ext3 (проверьте его с помощью System->Administration->Disk Utility ), взгляните на ext3undel .

Если это не так (если вы установили Ubuntu с настройками по умолчанию ), попробуйте программу extundelete .

Нет никакой гарантии, что вы что-нибудь восстановите.

    
ответ дан evgeny 13.10.2010 в 08:47
12

Вы искали: extundelete - утилита для восстановления удаленных файлов из раздела ext3 / ext4

Чтобы найти такой пакет, вы можете попробовать: apt-cache search undelete

Чтобы использовать утилиту, установите ее с помощью: sudo apt-get install extundelete

После установки вызовите man extundelete и внимательно изучите его.     

ответ дан H.-Dirk Schmitt 09.03.2013 в 21:36
4

Как альтернатива, если вы знаете конкретно, какой тип файла это ...

sudo apt-get install foremost

Теперь откройте /etc/foremost.conf , и вы увидите длинный список прокомментированных строк. Если ваш тип файла существует, раскомментируйте строку (вы также можете удалить ненужные строки).

Если ваш тип файла не существует, добавьте свою собственную строку. Скажем, я хочу восстановить файл .css, и я знаю его около 40K. Я мог бы добавить это:

css     n       40000   Theme\sName:     Plugin\sFixes

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

Используйте следующую команду (соответственно отредактируйте диск. можете проверить с помощью команды df )

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Что будет дальше, так это то, что прежде всего создаст папку с именем output и выгрузит все восстановленные данные (в этом случае) в папку. Оттуда вы можете использовать diff или meld , чтобы сравнить восстановленные «файлы» и посмотреть, какая из них самая актуальная.

    
ответ дан Reuben L. 21.02.2014 в 07:37
3

Говоря в самых абстрактных терминах, всякий раз, когда вы удаляете файл на графическом интерфейсе, файл «перемещается» в специальный «буфер», каталог с именем trash . Вы можете найти его в своем каталоге home , ~/.local/share/Trash/ . Файлы, «удаленные» из этого каталога, будут действительно удалены. Это реальное удаление - это то, что происходит, когда вы используете rm в файле.

Чрезвычайно сложно восстановить удаленные файлы. Файлы в файловой системе представлены как узлы на B-дереве или тому подобное. Когда файл удаляется с использованием rm , дерево обновляется, количество жестких ссылок уменьшается, соответствующая запись в списке каталогов удаляется. Если ваш файл имеет жесткую ссылку, ваш файл абсолютно безопасен. Вы можете сделать file / -samefile filename . Вы можете искать файл, если вы тоже помните его номер inode (это не так).

Другой случай - когда ни одна из вышеперечисленных возможностей не верна. Всякий раз, когда вы rm файла, запись файла в каталоге удаляется, уменьшая количество hardlinks на единицу. И если количество жестких ссылок падает до нуля, тогда указатель на файл в inode удаляется или помечен для удаления. В любом случае, ваш файл «все еще» находится на жестком диске. Файл фактически удаляется с жесткого диска только при последующем восстановлении. Восстановление файлов в такое время чрезвычайно сложно, включает в себя просмотр дерева файловой системы и inodes, представляющих фактические местоположения блоков на диске. Существует популярный инструмент, о котором я слышал, но никогда не использовал его, называемый extundelete . Хотя нет никакой гарантии, стоит попробовать.

Как только вы восстановите свои файлы успешно или нет, поспешите делать регулярные резервные копии. Это очень просто на Ubuntu.     

ответ дан John Strood 10.10.2016 в 13:04
2

Извините, но файлы, удаленные из командной строки с помощью «rm» и «rm -f», обходят «Trashcan» на рабочем столе Gnome.

Вы также можете спросить, есть ли какие-либо extfs «восстанавливаемые» инструменты, например, для FAT и NTFS. (Я ничего не знаю, но я был бы удивлен, если бы их не было.)

    
ответ дан Stéphane 13.10.2010 в 08:44