cofnąć rm Linuksa? [duplikować]

31

Możliwa duplikat:
Cofnij polecenie kosza na LINUX

Cześć,

Czy istnieje prosty sposób cofnięcia rmpolecenia?

Pytanie jest czysto teoretyczne; NIGDY nie usunąłem dziennika kolejki porównawczej, która zajęła cały lunch.

Adam Matan
źródło
1
... lub przynajmniej bardzo blisko spokrewnione, nawet jeśli samo pytanie jest sformułowane jako nieco bardziej ogólne
Jonik

Odpowiedzi:

33

W systemie Ubuntu lub podobnym:

$ sudo apt-get install trash-cli
$ alias rm=trash

Następnie umieść ten alias w .bashrc lub w odpowiednim skrypcie logowania dla wybranej powłoki.

trash-cliPakiet jest interfejs wiersza poleceń do tego samego kosza, że użycie GNOME i KDE i inne. Więc wszystko, co usuniesz za pomocą trashpolecenia, może zostać przywrócone przez GNOME / KDE i odwrotnie.

Inne polecenia w trash-clipakiecie są trash-list, trash-emptyi restore-trash.

Ryan C. Thompson
źródło
11
+1 dla trash-cli, -1 dla aliasingu rm.
1
Co jest złego w aliasingu rm? Lubię mieć przycisk cofania dla moich przypadkowych usunięć, nawet w wierszu poleceń. Ponadto trash-cliwyraźnie to ułatwia, akceptując (i ignorując) wiele rmopcji GNU . Poza tym PO poprosił o sposób cofnięcia. To rozwiązanie nie odpowiada poprawnie na pytanie bez aliasu.
Ryan C. Thompson,
15
@Ryan: Ponieważ przyzwyczajasz się do rm do oznaczania czegoś innego niż to, co naprawdę robi polecenie rm, a następnie popełniasz błąd, gdy nie jest on aliasowany. Zamiast tego przyzwyczaić się do używania polecenia kosza, a to się nie zdarza.
5
@Roger: Lub ... możesz pseudonim, rma następnie zahipnotyzować się, aby zapomnieć o tym. W ten sposób możesz nadal używać rmtak, jakby to było ostateczne ... ale jeśli wpadniesz w poślizg i powiesz „och nie !!” nie jesteś do końca wkręcony. (tj. nie polegaj na jego „odzyskiwalnej” funkcjonalności)
mpen
@RyanThompson: To fajna wskazówka, ale jak ją skonfigurować, aby działała sudo rm?
zajmuje
15

Tradycyjna odpowiedź brzmi:

Odzyskujesz plik z najnowszej kopii zapasowej. Masz ostatnią kopię zapasową, prawda?

ponieważ w wielu systemach plików Unix to proste nie jest możliwe lub jest bardzo trudne.

Jak zauważyli inni, nie jest to już kwestia ostateczna, ale nie popełnianie tego rodzaju błędów jest nadal preferowanym podejściem.

dmckee
źródło
5
Naprawdę zamierzam umieścić wszystkie moje skrypty w repozytorium bzr wykonywanym co godzinę.
Adam Matan
3
Współczesna odpowiedź brzmi: Odzyskaj plik z ostatniej migawki systemu plików. :-)
knweiss
To fajne pytanie ... Zwykle nie robię kopii zapasowych ~ / Pobrań ... i wymazuję zawartość, przepuszczając rm -fr *(1)*... każdy plik zerwany. Dlatego tworzenie kopii zapasowych nie zawsze jest rozwiązaniem. Trash-cli brzmi fajnie.
m3nda
Nie, posiadanie kopii zapasowych jest ZAWSZE rozwiązaniem. Tylko dlatego, że zdecydowałeś się nie tworzyć kopii zapasowej, nie sprawia, że ​​tworzenie kopii zapasowej nie jest rozwiązaniem, to sprawia, że ​​jesteś głupi, ponieważ nie tworzysz kopii zapasowej.
djsmiley2k - CoW
4

Aby zapobiec hipotetycznym przyszłym błędom, możesz użyć aliasu rm do rm -i ...

Rich Bradshaw
źródło
6
Ogólnie myślę, że to nigdy nie zapobiegnie błędom („y” jest wpisywane dość automatycznie), ale zajmuje dużo czasu i zachęca do używania He-Whose-Name-Must-Not-Be-Mfed rm -rf.
Adam Matan
To daje ci jeszcze jedną szansę, zanim coś zepsujesz. Generalnie używam wcześniej lstych samych parametrów, więc mogę zobaczyć, co się wydarzy.
Rich Bradshaw,
Zwykle usuwam pliki celowo, po prostu zdaję sobie sprawę, że potrzebowałem tych plików później. Tak interaktywne nie pomogłoby
andrewtweber