Czy pliki / katalogi usunięte za pomocą rm można przywrócić?


69

Czy można przywrócić pliki / katalogi, które zostały usunięte z terminala przy użyciu rmi rm -r? Jeśli plik zostanie usunięty z interfejsu graficznego, można go przywrócić z kosza, ale jak przywrócić plik, jeśli zostanie usunięty za pomocą narzędzia rm ?.


w sprawie narzędzi do odzyskiwania skasowanych plików (w dowolnej formie), możesz spojrzeć na to pytanie askubuntu.com/q/3883
— Decio Lira

Nie używaj „rm”, jeśli chcesz przywrócić pliki w przyszłości. Możesz użyć narzędzia „rm-trash”: github.com/nateshmbhat/rm-trash
— Natesh bhat

Odpowiedzi:


63

W tym celu używam w trash-clipakiecie pakietu i następującego aliasu~/.bashrc

alias rm=trash

A trash-clipakiet można zainstalować za pomocą polecenia followoing: sudo apt-get install trash-cli.

Pliki, które usuniesz, zostaną przeniesione do kosza i możesz je zobaczyć w koszu nautilus.

Zawsze możesz uzyskać dostęp do rzeczywistości rm, korzystając z jednej z następujących metod:

command rm something
'rm' something
\rm something

Istnieje również poleceń, aby uzyskać dostęp do kosza z terminalu trash-list, restore-trash(lub trash-restore), trash-emptyinstalowanego z pakietu trash-cli (wtedy zobaczyć swoje strony man).

Ostatnia uwaga: nie zaleca się używania takiego aliasu dla superużytkownika, ponieważ może on zakłócać działanie systemu.


19
Jest to obejście, ale tak naprawdę nie odpowiada na pytanie.
— evgeny,

Wydaje mi się, że użytkownik wiedziałby również, czy istnieje metoda osiągnięcia tego samego zachowania z wiersza poleceń. Jeśli nie, jestem gotów usunąć moją odpowiedź.
— enzotib

3
To jest dobre. Zdobyłem trochę wiedzy.
— user3215 13.10.10

27

Usunięcie go z terminala powoduje jego trwałe usunięcie - odzyskiwanie jest bardzo trudne, a czasem niemożliwe.

Jeśli typ partycji to ext3(sprawdź za pomocą System->Administration->Disk Utility), spójrz na ext3undel .

Jeśli tak nie jest (jeśli zainstalowałeś Ubuntu z ustawieniami domyślnymi ), wypróbuj extundeleteprogram.

Nie ma jednak gwarancji, że cokolwiek odzyskasz.


Byłoby to bardzo przydatne w przypadku wersji na komputery.
— user3215 13.10.10

Wątpię, czy to działa skutecznie w przypadku dysków SSD, ale cieszę się, że słyszę inaczej
— mat

13

Szukasz: extundelete - narzędzie do odzyskiwania skasowanych plików z partycji ext3 / ext4

Aby znaleźć taki pakiet, możesz spróbować: apt-cache search undelete

Aby użyć tego narzędzia, zainstaluj go z: sudo apt-get install extundelete

Po instalacji wywołać man extundeletei dokładnie przestudiować.


6

Alternatywnie, jeśli dokładnie wiesz, jaki to typ pliku ...

sudo apt-get install foremost

Teraz otwórz się, /etc/foremost.confa zobaczysz długą listę skomentowanych linii. Jeśli Twój typ pliku istnieje, usuń komentarz z wiersza (możesz też chcieć usunąć niepotrzebne wiersze).

Jeśli twój typ pliku nie istnieje, dodaj własną linię. Powiedzmy, że chcę odzyskać plik .css i wiem, że ma on około 40 KB. Mógłbym dodać to:

css     n       40000   Theme\sName:     Plugin\sFixes

Druga kolumna odnosi się do rozróżniania wielkości liter, trzecia kolumna odnosi się do górnego limitu rozmiaru, czwarta kolumna określa sposób uruchamiania pliku (pamiętaj, aby używać znaków zmiany znaczenia), a ostatnia kolumna określa sposób, w jaki zwykle kończy się plik.

Użyj następującego polecenia (odpowiednio edytuj dysk. Można sprawdzić za pomocą dfpolecenia)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Co stanie się potem, to przede wszystkim utworzy folder o nazwie wyjście i zrzuci wszystkie odzyskane dane (w tym przypadku) do folderu. Stamtąd możesz użyć difflub meldporównać odzyskane „pliki” i sprawdzić, które z nich jest najbardziej aktualne.


wielkie dzięki. Działa idealnie. Przypadkowo usunąłem phpplik źródłowy przy użyciu rm -fr php/2 phpplików. W niecałe 2 minuty zostały całkowicie odzyskane. W .confpliku dodałem:php n 40000 <?php ?> ASCII
— Shakiba Moshiri

5

Mówiąc w najbardziej abstrakcyjny sposób, za każdym razem, gdy usuwasz plik w interfejsie graficznym, plik jest „przenoszony” do specjalnego „bufora”, zwanego katalogiem trash. Można znaleźć go w swoim homekatalogu ~/.local/share/Trash/. Pliki „usunięte” z tego katalogu zostaną naprawdę usunięte. To prawdziwe usunięcie dzieje się, gdy używasz rmpliku.

Bardzo trudno jest odzyskać usunięte pliki. Pliki w systemie plików są reprezentowane jako węzły na drzewie B lub podobnym. Gdy plik jest usuwany za pomocą rm, drzewo jest aktualizowane, liczba twardych linków jest zmniejszana, odpowiadający wpis na liście katalogów jest usuwany. Jeśli w ogóle plik ma twardy link, plik jest całkowicie bezpieczny. Możesz zrobić file / -samefile filename. Możesz przeszukać plik, jeśli pamiętasz również jego numer i-węzła (tak nie jest w rzeczywistości).

Innym przypadkiem jest, gdy żadna z powyższych możliwości nie jest prawdziwa. Ilekroć masz rmplik, pozycja pliku w katalogu jest usuwana, co zmniejsza liczbę dowiązań twardych o jeden. A jeśli liczba twardych łączy spadnie do zera, wskaźnik do pliku na i-węźle zostanie upuszczony lub oznaczony do usunięcia. W każdym razie plik „nadal” znajduje się na dysku twardym. Plik jest faktycznie usuwany z dysku twardego tylko przy kolejnym ponownym zamontowaniu. Odzyskiwanie plików w tym czasie jest niezwykle trudne, wymaga przejścia przez drzewo systemu plików i i-węzły reprezentujące rzeczywiste położenia bloków dysku. Jest to popularne narzędzie, o którym słyszałem, ale nigdy go nie używałem, zwane extundelete. Chociaż nie ma gwarancji, warto spróbować.

Po pomyślnym odzyskaniu plików lub bez pośpiechu rób regularne kopie zapasowe. W Ubuntu jest to bardzo proste.


2

Przepraszamy, ale pliki usunięte z wiersza poleceń za pomocą „rm” i „rm -f” omijają „Trashcan”, który masz na pulpicie Gnome.

Możesz również zapytać, czy istnieją jakieś narzędzia „cofające usuwanie” systemu extfs, takie jak dla FAT i NTFS. (Nie znam żadnych, ale byłbym zaskoczony, gdyby ich nie było.)


Och ... w porządku! Myślałem, że można go odzyskać z jakiegoś miejsca.
— user3215 13.10.10

1

użyj narzędzia „ rm-trash ”, które obsługuje umieszcza je w koszu do późniejszego pobrania i obsługuje wszystkie opcje polecenia „rm”.

sudo add-apt-repository ppa:nateshmbhat/rm-trash
sudo apt-get update
sudo apt-get install rm-trash

„rm-trash” to

  • przeznaczony do użycia zamiast rm
  • obsługuje wszystkie opcje, które może podjąć rm
  • obsługuje kolizje nazw plików z plikami już znajdującymi się w koszu
  • automatycznie obsługuje niektóre problemy z uprawnieniami
  • jeśli rm jest wywoływany z innego skryptu lub pośrednio, systemowa komenda „rm” jest używana automatycznie
  • pokazuje odpowiednie komunikaty o błędach, takie jak te, które się pojawiają rm
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.