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.