Вопрос: Отменить команду «rm -rf ~»?


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

rm -rf ~

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


109
2018-05-05 18:30


Источник


Какая файловая система? - Tarnay Kálmán
Ясно, что у вас нет чувства юмора. - Blomkvist
Хотя это прямо не отвечает на ваш вопрос, rm -rf "~" с кавычками будет искать это буквальное имя вместо его расширения. Но я бы боялся использовать это в любом случае - я бы использовал что-то вроде ls или cd сначала для проверки, что я получаю правильный каталог или удалю папку из диспетчера файлов графического интерфейса. Возможно, сначала переименуйте каталог (mv "~" tilde), проверьте, а затем удалите. - Henrik N
В будущем не используйте rm интерактивно в командной строке. Используйте утилиту типа мусор и вы 1) не можете повторить ту же ошибку и 2) не можете привыкнуть к плохому псевдониму оболочки rm, который вызовет у вас проблемы. - Fred Nurk
@HenrikN: ./~ вместо «~» делает то же самое, но также работает с другими распространенными проблемными именами файлов, такими как те, которые начинаются с тире и выглядят как параметры. - Fred Nurk


Ответы:


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

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


145
2018-05-05 18:34



Ваше замечание о резервных копиях является жестоким и 100% к делу. - Benjamin Bannier
OS X устанавливает планку резервного копирования должен (особенно с Time Capsule). Видеть maketecheasier.com/... для предложений, как получить то же самое с Ubuntu. - Thorbjørn Ravn Andersen
@ Thorbjørn Ravn Andersen - Это происходит, за исключением случаев, когда Time Machine нервничает. У меня было время, когда у меня было два раза в шесть месяцев. - Fake Name
Внештатная резервная копия отличная и может быть довольно доступной. я использую Backblaze (Mac / Windows) по цене $ 5 / компьютер / месяц. Многим кажется, что нравится CrashPlan (Mac / Windows / Linux). - Henrik N
ежедневно что ???? - Luc M


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

Однако никто не упомянул о самой важной вещи - ВЫКЛЮЧИТЕ КОМПЬЮТЕР. ТЕПЕРЬ.,

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

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


65
2018-05-06 02:20



Даже процесс выключения может записываться на жесткий диск. Я не решаюсь рекомендовать немедленно отключить ваш компьютер, потому что это может определенно сделать вещи много хуже, но ... ну, в зависимости от того, насколько важны данные, вы можете подумать об этом. - BlueRaja - Danny Pflughoeft
В зависимости от точки привода / ОС / монтирования может быть возможно немедленное размонтирование и / или перемонтировать readonly live без выключения компьютера, затем отключения и т. Д. - Matthew Scharley
killall rm вместо отключения. - Fred Nurk
В зависимости от того, насколько велика ваша домашняя директория и насколько большой ваш жесткий диск, вероятность перезаписи свободных секторов, содержащих ваши данные, довольно тонкая. - Mike Speed
Вы можете восстановить текстовые файлы с помощью этого метода без особых трудностей (если у вас есть приблизительное представление о том, что в них), но двоичные файлы настолько сложны, насколько это практически невозможно. - Satanicpuppy


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

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

cd ~

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

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


12
2018-05-06 02:41



Посмотрите, прежде чем прыгать, и ls до тебя rm, - LawrenceC


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


7
2018-05-05 19:00





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

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


5
2018-05-05 18:49





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

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

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

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


4
2018-05-06 14:31



+1 для упоминания того, что на большинстве журнальных FS, даже монтируемое только для чтения, может записывать данные как часть активности журнала. - sleske


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


2
2018-05-05 18:46





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

  1. Найдите того, кто его создал, и убедитесь, что они никогда не делают этого снова.
  2. Не использовать -rf или любые безумные мощные аргументы, чтобы выполнить удаление. Вместо этого сделайте это красиво и медленно и убедитесь, что вы видите, что происходит. Можно ввести тильду без ее расширения в ваш домашний каталог, выйдя из нее в оболочке. В теории вы мог  rm -rI \~, однако вы можете пойти еще дальше.
    1. Первый, cd \~ получить INTO в этой папке, возможно, даже использовать pwd чтобы проверить, что вы там. Десять удаляют содержимое, пока вы там. Снова будьте осторожны, но очистите папку с помощью rf -rI * и если вам нужно .* слишком.
    2. Теперь вернитесь назад cd .. и удалите каталог с помощью rmdir \~,

2
2018-05-07 18:27





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


1
2018-05-06 07:04



Я считаю, что это благодаря NAS-боксу. - mlk


alias rm="rm -i"

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

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

$ 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
2018-05-06 05:30



Зависит от системы, в которой вы находитесь. По крайней мере, на RHEL5 и OS X 10.6, -f переопределяет -i вариант. - Daniel Beck♦
Я не знал этого. Я добавляю свой совет с YMMV и «не пытайтесь это дома или, что еще важнее, на работе»! - aaa90210
Если вы это сделаете, у вас в один прекрасный день не будет такого псевдонима - возможно, вы сидите на другом компьютере или у вас есть ssh'd куда-нибудь, - и вы будете использовать rm, который будет использоваться в защитной сетке. Вы сделаете то, о чем вы пожалеете. - Fred Nurk
@FredNurk Точно. Лучше всего просто добавить -i самостоятельно или просто не использовать опцию -f. - Arda Xi
Когда у меня есть много файлов для удаления, я начинаю с rm -i my_list_of_files, Затем я использую CTRL-C и вызывать мою команду, чтобы изменить ее на rm -rvf my_list_of_files - Luc M


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

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

Информация:

В своем личном опыте я возвращаю свои данные с помощью «UFS Explorer» и photorec

(1) = Не открытый, не бесплатный

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

(3) = Открытый источник и свободный

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

(5) = имеет функцию структуры каталогов


0
2018-06-10 04:22