Как восстановить удаленный файл в Linux

Вы когда-нибудь сталкивались с такой ситуацией? Вы поняли, что по ошибке удалили файл – либо с помощью клавиши Del, либо используя rm в командной строке.

В первом случае вы всегда можете перейти в Корзину, найти файл и восстановить его в исходное место. Но что делать во втором случае? Как вы, наверное, знаете, командная строка Linux не отправляет удаленные файлы никуда – она УДАЛЯЕТ их. Пропали.

Рекомендуем прочитать: Как восстановить удаленные файлы/каталоги с помощью инструмента Scalpel

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

Создайте псевдоним для ‘rm -i’

Переключатель -i, когда используется с rm (а также с другими инструментами для работы с файлами, такими как cp или mv), вызывает запрос перед удалением файла.

То же самое относится к копированию, перемещению или переименованию файла в месте, где уже существует файл с таким же именем.

Этот запрос дает вам второй шанс подумать, действительно ли вы хотите удалить файл – если вы подтвердите запрос, он исчезнет. В этом случае мне жаль, но этот совет не защитит вас от вашей собственной небрежности.

Чтобы заменить rm псевдонимом 'rm -i', выполните:

alias rm='rm -i'

Команда alias подтвердит, что rm теперь имеет псевдоним:

Add Alias rm Command

Однако это будет действовать только в течение текущей сессии пользователя в текущем оболочке. Чтобы сделать изменение постоянным, вам нужно сохранить его в ~/.bashrc (некоторые дистрибутивы могут использовать ~/.profile вместо этого), как показано ниже:

Add Alias Permanently in Linux

Чтобы изменения в ~/.bashrc (или ~/.profile) вступили в силу немедленно, выполните источник файла из текущей оболочки:

. ~/.bashrc
Active Alias in Linux

Инструмент судебной экспертизы – Foremost

Надеюсь, вы будете осторожны с вашими файлами и вам придется использовать этот инструмент только при восстановлении потерянного файла с внешнего диска или USB-накопителя.

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

Чтобы установить Foremost в CentOS/RHEL 7, вам нужно сначала включить Repoforge:

# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost

В то время как в Debian и его производных, просто выполните

# aptitude install foremost

После завершения установки приступим к простому тесту. Начнем с удаления файла изображения с именем nosdos.jpg из каталога /boot/images:

# cd images
# rm nosdos.jpg

Для его восстановления используйте foremost следующим образом (сначала вам нужно определить базовый раздел – в данном случае /dev/sda1 – это место, где находится /boot):

# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

где /home/gacanepa/rescued – это каталог на отдельном диске – имейте в виду, что восстановление файлов на том же диске, где находились удаленные файлы, не является разумным решением.

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

После завершения выполнения foremost восстановленный файл (если восстановление было возможным) будет найден внутри каталога /home/gacanepa/rescued/jpg.

Резюме

В этой статье мы объяснили, как избежать случайного удаления файла и как попытаться восстановить его, если произойдет подобное нежелательное событие. Однако имейте в виду, что foremost может занять довольно много времени в зависимости от размера раздела.

Как всегда, не стесняйтесь задавать вопросы или оставлять комментарии. Не стесняйтесь написать нам, используя форму ниже.

Source:
https://www.tecmint.com/recover-deleted-file-in-linux/