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

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

7 ответов

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

alias rm=trash

И trash-cli Пакет может быть установлен следующей командой: sudo apt-get install trash-cli,

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

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

command rm something
'rm' something
\rm something

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

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

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

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

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

Хотя нет гарантии, что вы что-нибудь восстановите.

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

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

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

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

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

sudo apt-get install foremost

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

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

css     n       40000   Theme\sName:     Plugin\sFixes

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

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

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

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

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

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

Другой случай, когда ни одна из вышеперечисленных возможностей не верна. Всякий раз, когда вам rm файл, запись файла в каталоге удаляется, уменьшая количество жестких ссылок на одну. И если количество жестких ссылок падает до нуля, то указатель на файл в индексе удаляется или помечается для удаления. В любом случае, ваш файл "все еще" находится на жестком диске. Файл фактически стирается с жесткого диска только при последующем перемонтировании. Восстановление файлов в такое время чрезвычайно сложно, включает в себя просмотр дерева файловой системы и инодов, представляющих фактические расположения дисковых блоков. Есть популярный инструмент, о котором я слышал, но никогда не использовал его, который называется extundelete, Хотя нет никакой гарантии, стоит попробовать.

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

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

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

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

sudo add-apt-repository ppa:nateshmbhat/rm-trash
sudo apt-get update
sudo apt-get install rm-trash

"RM-Trash" является

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

Просто добавьте псевдоним в свой файл в домашней папке .bash_alias или .bash_profile

alias rm='gio trash'
Другие вопросы по тегам