Как восстановить удаленный файл в Linux
Это когда-нибудь случалось с вами? Вы поняли, что удалили файл по ошибке — либо с помощью клавиши Del, либо с помощью rm
в командной строке.
В первом случае вы всегда можете зайти в Корзину, найти файл и восстановить его в исходное местоположение. А как насчет второго случая? Как я уверен, вы, наверное, знаете, командная строка Linux никуда не отправляет удаленные файлы — она УДАЛЯЕТ их. Бездельничать. Они ушли.
Рекомендуется к прочтению: Как восстановить удаленные файлы/каталоги с помощью инструмента «Скальпель»
В этой статье мы поделимся советом, который может помочь предотвратить подобное с вами, а также инструментом, который вы можете использовать, если в какой-то момент вы все равно будете достаточно неосторожны, чтобы сделать это.
Создайте псевдоним для «rm -i»
Переключатель -i
при использовании с rm (а также с другими инструментами работы с файлами, такими как cp или mv) вызывает появление запроса перед удалением файла.
То же самое относится к копированию, перемещению или переименованию файла в месте, где уже существует файл с таким же именем.
Это приглашение дает вам второй шанс подумать, действительно ли вы хотите удалить файл — если вы подтвердите запрос, он исчезнет. В таком случае извините, но этот совет не защитит вас от вашей же невнимательности.
Чтобы заменить rm псевдонимом 'rm -i'
, выполните:
alias rm='rm -i'
Команда alias подтвердит, что rm теперь имеет псевдоним:
Однако это будет продолжаться только во время текущего сеанса пользователя в текущей оболочке. Чтобы сделать изменение постоянным, вам необходимо сохранить его в ~/.bashrc
(в некоторых дистрибутивах вместо этого может использоваться ~/.profile
), как показано ниже:
Чтобы изменения в ~/.bashrc
(или ~/.profile
) вступили в силу немедленно, создайте файл из текущей оболочки:
. ~/.bashrc
Инструмент криминалистики – Foremost
Надеемся, вы будете осторожны со своими файлами и вам нужно будет использовать этот инструмент только при восстановлении утерянного файла с внешнего диска или USB-накопителя.
Однако, если вы понимаете, что случайно удалили файл в своей системе и собираетесь паниковать — не делайте этого. Давайте, прежде всего, взглянем на инструмент криминалистики, который был разработан для такого рода сценариев.
Прежде всего, чтобы установить 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
Чтобы восстановить его, используйте в первую очередь следующее (сначала вам нужно будет определить базовый раздел — в этом случае /dev/sda1
находится там, где находится /boot
):
foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued
где /home/gacanepa/rescued — каталог на отдельном диске — имейте в виду, что восстанавливать файлы на том же диске, где находились удаленные, — неразумный шаг.
Если при восстановлении вы займёте те же сектора диска, где раньше находились удалённые файлы, восстановить что-либо может оказаться невозможным. Кроме того, перед выполнением восстановления важно прекратить всю свою деятельность.
После завершения выполнения восстановленный файл (если восстановление было возможно) будет найден в каталоге /home/gacanepa/rescued/jpg.
Краткое содержание
В этой статье мы объяснили, как избежать случайного удаления файла и как попытаться восстановить его, если произойдет такое нежелательное событие. Однако имейте в виду, что запуск в зависимости от размера раздела может занять довольно много времени.
Как всегда, не стесняйтесь сообщать нам, если у вас есть вопросы или комментарии. Не стесняйтесь оставить нам сообщение, используя форму ниже.