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

Cofnąć polecenie "rm -rf ~"?

Miałem folder, którego nie chciałem nazywać ‘~’, więc z linii poleceń wpisałem

rm -rf ~

i przypadkowo usunąłem mój folder domowy (ponieważ ~ rozwiązuje się na /home/username). Czy jest jakaś droga powrotna, czy też w zasadzie muszę odtworzyć konto od zera?

Odpowiedzi (12)

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

Ogólnie rzecz biorąc, nie ma łatwej drogi powrotnej.

Możesz przywrócić z codziennej kopii zapasowej.

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

Inni (tacy jak @RiMMER , @Adam , i @James T ) wspomnieli, że dla większości systemów plików, możliwe jest odzyskanie większości lub wszystkich danych (być może bez nazw plików), ponieważ dane nie są właściwie wyzerowane, tylko usunięte z tablicy plików. Nie dotyczy to tylko Linuksa - to samo dotyczy Windowsa i Maca.

Nikt jednak nie wspomniał o najważniejszej rzeczy - WYŁĄCZ SWÓJ KOMPUTER. TERAZ..

Wiele programów - włączając w to przeglądarkę internetową, której właśnie używasz - buforuje dane na dysku twardym, a prawie wszystko, co robisz, może spowodować, że komputer zmieni rozmiar/zapisze do pliku wymiany. Obie te rzeczy będą zapisywać się w wolnych sektorach na dysku twardym, potencjalnie nadpisując Twoje cenne dane.

Dlatego wyłącz komputer, wyjmij dysk twardy i włóż go do innego komputera. Zamontuj dysk twardy jako tylko do odczytu, a następnie odzyskaj pliki na oddzielnym dysku twardym. Po odzyskaniu wszystkiego, co może być interesujące - i tylko wtedy - zapisz pliki z powrotem na oryginalnym dysku.

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

Wierzę, że każdy użytkownik linuxa w pewnym momencie musi nauczyć się tej bolesnej lekcji z pierwszej ręki, zanim nauczy się, jak ważne są kopie zapasowe, a także zwracanie uwagi na szczegóły i bycie ostrożnym.

Na przykład, jeśli usuwasz dziwnie wyglądające pliki, możesz najpierw uruchomić na nich polecenia, które nie mają żadnych skutków ubocznych i nie powodują zmian w twoich danych. Na przykład, gdybyś uruchomił

cd ~

przed próbą usunięcia folderu, zobaczyłbyś, że zamiast tego zmieni on katalog na twój folder domowy, a nie na folder ~. Po przejściu przez wystarczającą liczbę kroków rozwiązywania problemów, aby nauczyć się prawdziwej komendy, musiałbyś poprawnie wpisać cd do folderu ~, następnie mógłbyś nacisnąć klawisz strzałki w górę, aby wyciągnąć ostatnią komendę z historii, a następnie zmienić cd na rm i wtedy i tylko wtedy spróbować usunąć folder.

Sugeruję podjęcie kroków takich jak ten przed wykonaniem jakiejkolwiek czynności, która jest trwała. Nie jest to trwałe ani niezawodne, ale masz o wiele większe szanse na uniknięcie tych momentów ups, jeśli podejmiesz ten stopień ostrożności podczas wykonywania działań, które mają skutki uboczne.

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

Jeśli używasz systemu plików ext3, to ext3grep jest twoim nowym najlepszym przyjacielem. Dobry tutorial (wśród wielu innych) na temat używania ext3grep można znaleźć tutaj .

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

Możesz spróbować użyć testdisk aby cofnąć usunięcie poszczególnych plików . To działa tylko na ext2 i NTFS (ale nadal warto spróbować).

Jeżeli masz ext3 lub ext4, możesz odzyskać znany plik s używając photorec , który prawdopodobnie skończy się odzyskaniem więcej niż chcesz. Photorec odzyskuje pliki bez informacji o nazwie pliku, więc może to być uciążliwe, aby przejść przez pliki.

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

Jeśli masz wystarczająco duży dysk zewnętrzny, masz inną, prawdopodobnie najbezpieczniejszą opcję. Będziesz potrzebował wystarczająco dużo miejsca, aby pomieścić całą partycję domową wraz z wolną przestrzenią.

Uruchom komputer z płyty CD i nie montuj w ogóle dysku macierzystego. Zamontuj dysk zewnętrzny. dd partycję home drive do pliku na dysku zewnętrznym. zamontuj plik jako urządzenie loopback wykonaj swoje prace związane z odzyskiwaniem danych na tym obrazie, mając pewność, że nie możesz uszkodzić oryginalnego systemu plików. W zależności od systemu plików może być wiele rzeczy do wypróbowania, niektóre z nich potencjalnie destrukcyjne.

To uratowało mnie raz z wersją beta Reiser4, kiedy nie wiedziałem co zrobi nawet jeśli zamontowałem go tylko do odczytu. Czytałem gdzieś wtedy, że zapisy w dzienniku były nadal możliwe.

Jest to również dobra technika do ratowania danych z umierającego dysku.

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

Istnieją techniki odzyskiwania plików poprzez sprawdzanie inodów, które nie zostały poddane recyklingowi. Im więcej danych zostanie zapisanych do systemu plików po usunięciu, tym mniejsze prawdopodobieństwo odzyskania danych. Najlepszą strategią odzyskiwania danych po ich przypadkowym usunięciu jest przywrócenie ich z kopii zapasowej.

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

Przykro mi z powodu twoich danych. Wszyscy inni już się wypowiedzieli, jak poradzić sobie z problemem z danymi, ale oto kilka informacji, jak możesz sobie poradzić, gdy następnym razem zobaczysz folder o nazwie ~.

  1. Znajdź tego, kto go stworzył i upewnij się, że już nigdy więcej tego nie zrobi.
  2. Nie używaj -rf ani żadnych szalonych, potężnych argumentów do rm, aby wykonać usunięcie. Zamiast tego zrób to powoli i upewnij się, że widzisz co się dzieje. Możliwe jest wpisanie tyldy bez rozszerzania jej na katalog domowy przez escaping it on w powłoce. Teoretycznie mógłbyś powinien rm -rI \~, jednak możesz pójść o krok dalej.
  3. Najpierw cd \~, aby dostać się do tego folderu, może nawet użyć pwd, aby sprawdzić, czy się tam dostałeś. Następnie usuń jego zawartość, gdy już tam będziesz. Ponownie zachowaj ostrożność, ale wyczyść folder za pomocą rf -rI *, a jeśli trzeba, to także .*.
  4. Teraz przejdź z powrotem do góry z cd .. i usuń katalog z rmdir \~.
2
2
2
2011-05-06 05:30:57 +0000
alias rm="rm -i"

Zakładając, że używasz powłoki Bash (umieść to w swoim pliku .bashrc, aby było zachowane w kolejnych powłokach, które otwierasz).

Powinno to spowodować, że rm poprosi cię o potwierdzenie tego, co chcesz usunąć, co jest miłe, szczególnie gdy robisz -rf, ale także rozszerzy ‘~’ do pełnej ścieżki do twojego katalogu domowego w monicie, co powinno dać ci wskazówkę, że nie usuwasz pliku ‘~’, ale tak naprawdę twój homedir.

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

To nie jest technicznie odpowiedź na twoje pytanie, ale może pomóc ci uniknąć takiego problemu w przyszłości.

EDIT: Niektórzy ludzie mogą zniechęcać cię do używania tej techniki, ponieważ czyni cię ona mniej ostrożnym przy użyciu polecenia “rm”. Z mojego doświadczenia wynika, że jest to dalekie od prawdy. W rzeczywistości, efektem aliasu jest zniechęcenie cię do używania “rm -rf” - ponieważ wiesz, że spowoduje to wiele monitów, na które nie chcesz odpowiadać - i aby uzyskać “rm -rf” bez monitów, musisz celowo odnieść się do polecenia rm jako /bin/rm (lub cokolwiek innego). Prowadzi to do bardziej świadomego i celowego używania polecenia “rm” w ogóle - ponieważ zawsze musisz poprzedzić użycie rm wyborem “rm lub /bin/rm” - zarówno na swoim serwerze, jak i na każdym innym, do którego jesteś zalogowany. A świat, w którym każdy pomyślałby przed użyciem rm, byłby bezpieczniejszy!

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

Po prostu cd .snapshot i przywracam pliki. Ale robię to w pracy i nie mam pojęcia skąd się wziął katalog .snapshot. Myślałem, że to może być cecha Linuksa.

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

Narzędzia odzyskiwania - Wiersz poleceń :

*Narzędzia odzyskiwania - Gui : *

*Infos : *

Z mojego osobistego doświadczenia wynika, że odzyskałem swoje dane używając “UFS Explorer” i photorec

(1) = Nie open source, nie wolny

(2) = Nie open source, wolny

(3) = Open source i wolny

(4) = Posiada wsparcie dla ntfs

(5) = Posiada funkcję struktury katalogów

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

rm jest na zawsze.

Chociaż to nie pomoże ci teraz, możesz w przyszłości nie używać rm lub naprawdę się zmusić, dodać skrypt znaleziony wcześniej w twojej ścieżce o nazwie rm, który przenosi pliki do folderu śmieci, który wyczyścisz innym razem (pozwalając ci popełniać błędy i nie być SOL).