2011-05-05 18:30:54 +0000 2011-05-05 18:30:54 +0000
116
116

Отменить команду "rm -rf ~"?

У меня была папка, которую я не хотел называть ‘~’, поэтому из командной строки я набрал

rm -rf ~

и случайно удалил свою домашнюю папку (поскольку ~ resolved to /home/username). Есть ли какой-нибудь способ вернуться или мне нужно воссоздать учетную запись с нуля?

Ответы (12)

148
148
148
2011-05-05 18:34:16 +0000

В общем, обратного пути нет.

Вы можете восстановить из ежедневной резервной копии.

67
67
67
2011-05-06 02:20:40 +0000

Другие (такие как @RiMMER , @Adam и @James T ) упоминали, что в большинстве файловых систем можно восстановить большую часть или все ваши данные (возможно, без имен файлов), потому что данные на самом деле не обнуляются, а только удаляются из файл-таблицы. Это относится не только к Linux - то же самое касается Windows и Mac.

Однако, никто не упомянул самого главного - **ВЫХОД ВАШЕГО КОМПЬЮТЕРА. СЕЙЧАС.

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

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

13
13
13
2011-05-06 02:41:43 +0000

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

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

cd ~

перед тем, как попытаться удалить папку, вы бы увидели, что вместо этого будет изменен каталог в вашей домашней папке, а не в папке ~. После того, как вы пройдете достаточно шагов по диагностике, чтобы узнать истинную команду, вам нужно будет корректно установить cd в папку ~, затем вы можете нажать клавишу со стрелкой вверх, чтобы вытащить последнюю команду из истории, а затем изменить cd на rm и then, и только затем попытаться удалить папку.

Я предлагаю предпринять подобные шаги перед выполнением действия any, которое является постоянным. Она не является постоянной и не защищена от дураков, но у вас гораздо больше шансов предотвратить такие моменты опса, если вы будете так осторожны при выполнении действий, которые имеют побочные эффекты.

7
7
7
2011-05-05 19:00:15 +0000

Если вы используете файловую систему ext3, то ext3grep - ваш новый лучший друг. Хорошее учебное пособие (среди многих других) по использованию ext3grep можно найти здесь .

6
6
6
2011-05-05 18:49:12 +0000

Вы можете попробовать использовать тестовый диск , чтобы недоудалить отдельные файлы . Это работает только на ext2 и NTFS (но все же стоит попробовать).

Если у вас есть ext3 или ext4, вы можете восстановить известный файл s с помощью photorec , что, вероятно, приведет к восстановлению большего количества файлов, чем вы хотите. Photorec восстанавливает файлы без информации об имени файла, поэтому просмотр файлов может быть утомительным.

4
4
4
2011-05-06 14:31:40 +0000

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

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

Это спасло меня однажды с помощью бета-версии Reiser4, когда я не знал, что он будет делать, даже если я смонтирую его только для чтения. Я читал где-то в то время, что записи в журнале все еще были возможны.

Это также хорошая техника для сохранения данных с умирающего диска.

2
2
2
2011-05-05 18:46:33 +0000

Существуют методы восстановления файлов путем проверки непереработанных кодов. Чем больше данных вы запишете в файловую систему после удаления, тем меньше вероятность их восстановления. Лучшая стратегия восстановления после случайного удаления данных - восстановление из резервной копии.

2
2
2
2011-05-07 18:27:57 +0000

Извини за твои данные. Все остальные прокомментировали, как решить вашу проблему с данными, но вот некоторая информация о том, как вы можете справиться с ней, когда в следующий раз увидите папку, получившую название ~.

  1. Найдите того, кто ее создал, и убедитесь, что они больше никогда этого не сделают.
  2. Не используйте -rf или какие-нибудь безумно мощные аргументы rm для удаления. Вместо этого сделайте это медленно и аккуратно и убедитесь, что вы можете видеть, что происходит. Можно ввести тильду без ее расширения в ваш домашний каталог, экранируя ее в оболочке. В теории вы could rm -rI \~, однако, можете пойти на один шаг дальше.
  3. Во-первых, cd \~, чтобы войти в эту папку, может даже использовать pwd, чтобы проверить, что вы туда попали. Десять раз удалите ее содержимое, пока вы там находитесь. Еще раз будьте осторожны, но очистите папку с rf -rI *, и если вам нужно получить .* тоже.
  4. Теперь вернитесь к cd .. и удалите папку с rmdir \~.
2
2
2
2011-05-06 05:30:57 +0000
alias rm="rm -i"

Предположим, что вы используете оболочку Bash (поместите это в ваш файл .bashrc, чтобы он оставался в новых открытых оболочках).

Это должно привести к тому, что rm попросит вас подтвердить, что вы хотите удалить, что особенно удобно, когда вы делаете -rf, но это также развернет ‘~’ до полного пути к вашему домашнему каталогу в подсказке, что должно дать вам подсказку, что вы удаляете не файл ‘~’, а ваш домашний каталог.

$ rm -rf ~
rm: examine files in directory /nas/users/u12345/unix (yes/no)? n

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

EDIT: Некоторые люди могут отговаривать вас от использования этой техники, так как она делает вас менее осторожным с командой “rm”. По моему опыту это далеко не правда. На самом деле, эффект псевдонима заключается в том, чтобы отговорить вас от использования “rm -rf” - как вы знаете, это приведет ко многим подсказкам, на которые вы не захотите отвечать - и для того, чтобы получить непроизвольный “rm -rf”, вам нужно намеренно ссылаться на команду rm как /bin/rm (или что-то в этом роде). Это приводит к гораздо более сознательному и преднамеренному использованию команды “rm” в целом - так как вы всегда должны предшествовать использованию rm с ментальным выбором “rm или /bin/rm” - как на вашем сервере, так и на любом другом, к которому вы случайно подключились. И мир, в котором каждый думал перед использованием rm будет действительно более безопасным!

1
1
1
2011-05-06 07:04:37 +0000

Я просто делаю снимки и восстанавливаю файлы. Но я делаю это на работе и понятия не имею, откуда взялся каталог .snapshot. Я подумал, что, возможно, это функция Linux.

1
1
1
2018-06-10 04:22:55 +0000

Инструменты восстановления - командная строка :

*Инструменты восстановления - Gui : *

*Инфо : *

В моем личном опыте я получаю свои данные обратно, используя “UFS Explorer” и фоторекордер

(1) = Не с открытым исходным кодом, не бесплатно

(2) = Не с открытым исходным кодом, не бесплатно

(3) = Открытый исходный код и не бесплатно

(4) = Поддержка ntfs

(5) = Функция структуры каталогов

-3
-3
-3
2011-05-06 00:07:52 +0000

Это навсегда.

Хотя это не поможет вам сейчас, вы можете в будущем не использовать rm или действительно заставить себя, добавить скрипт, найденный ранее в вашем пути с именем rm, который перемещает файлы в мусорную папку, которую вы очищаете в другое время (позволяя вам делать ошибки и не быть SOL).

Похожие вопросы

6
10
5
37
8