Czy w wierszu poleceń systemu Unix istnieje polecenie „cofnij”?

7

Mam wrażenie, że pewnego dnia będę tego potrzebować, na przykład, jeśli właśnie usunąłem coś, czego nie powinienem, lub zmieniłem jego nazwę i nie pamiętam, jak powinien być wywoływany itd.

Kirt
źródło
Żaden system operacyjny, o którym wiem, nie obsługuje takiej funkcji. Aby móc obsługiwać cofanie dla a rm -Rf / wymagałoby, aby istniała pełna kopia zapasowa istniejącego dysku. To nigdy nie będzie możliwe (lub pożądane z powodu ogromnego czasu, jaki zajmowałoby to tworzenie kopii zapasowych). To tylko jedna rzecz, którą może zrobić jeden program; nieważne cofanie się w przypadku czegoś podobnego mke2fs /dev/hdb1.
krowe2
Ach, tutaj przyszedłem myśląc bardziej o liniach cofania wklejania (lub tekstu wprowadzanego w wierszu poleceń), np. askubuntu.com/questions/444966/…
Pat

Odpowiedzi:

8

Negatywny. Nie ma magicznego przycisku cofania w Linuksie.

RobotHumans
źródło
2
Ale jeśli coś spieprzysz literówką, możesz często użyć historii poleceń, aby dowiedzieć się, co faktycznie zrobiłeś, w przeciwieństwie do tego, co myślałeś, że zrobiłeś.
Velociraptors
1
dobra historia punktów | grep partofwhatidid może być pomocny
RobotHumans
6

Nie.

Unix nie zapewnia funkcji cofania. Filozofia mówi, że jeśli zniknie, zniknie. Jeśli to było ważne, powinno być cofnięty .


Zamiast usuwać plik, możesz przenieść go do tymczasowego katalogu „śmieci”. W niektórych środowiskach komputerowych polecenie „usuń” przenosi plik do kosza. Ale uwaga, tylko kilka aplikacji będzie go używać; inni po prostu usuwają plik.

Wiele poleceń można odwrócić, np. Przeniesienie pliku można cofnąć, przenosząc plik z powrotem. Polecenia, które usuwają lub zastępują plik, nie mogą być łatwo cofnięte, jeśli w ogóle; niektóre z nich mogą być bardziej odporne na przypadkową utratę danych poprzez ustawienia powłoki. W szczególności:

  • W linii poleceń, cp i mv nadpisze istniejący plik docelowy, ale możesz go monitować:

    alias cp='cp -i'
    alias mv='mv -i'
    

    Polecam te dwa aliasy, ponieważ bez nich cp i mv wykonaj dwa zadania: kopiowanie / przenoszenie i usuwanie. Nie mający cp i mv usuwanie plików jest bardziej zgodne z filozofią unix (jedno polecenie wykonuje jedno zadanie) i mniej podatne na błędy. (To jest zupełnie inne niż rm -i, który prosi o potwierdzenie przed wykonaniem swojej pracy - taki systematyczny monit zwykle uruchamia automatyczną odpowiedź, a zatem staje się bezużyteczną irytacją.)

  • Możesz zrobić > operator przekierowania akceptuje tylko tworzenie plików, więc musisz pisać >|foo aby umożliwić nadpisanie istniejącego pliku foo.

    set -o noclobber
    

Tam jest BEZPIECZNIK system plików, który automatycznie przechowuje kopie starych wersji: copyfs , dostępny dla większości urządzeń (* BSD, Linux, OS X, Solaris). Oczywiście, że może korzystać z wielu zasobów.

Jeśli przeniósłeś plik do innego katalogu i pamiętasz (jego część), ale nie jego lokalizację, możesz użyć locate polecenie, aby go znaleźć.


Najlepszym sposobem ochrony przed takimi wypadkami jest użycie kontrola wersji system (cvs, bazar, darcs, git, mercurial, subversion, ...). Nauka trwa trochę czasu, ale w średnim i długim okresie opłaca się.

Gilles
źródło
0

Nie ma żadnej opcji „cofnij”, tylko jeśli użyłeś funkcji Kosz.

Aby odzyskać usunięte pliki, naprawdę zależy od posiadanego systemu plików.

Jest:

Obsługuje większość głównych systemów plików.

HFS Plus

Dla HFS Plus (OS X) istnieje kilka rozwiązań komercyjnych, takich jak:

Czytaj więcej: Odzyskaj pliki z sformatowanej partycji HFS +


Aby uzyskać pełną listę, sprawdź:


Aby uniknąć podobnych sytuacji, rób kopie zapasowe częściej, korzystaj z kontroli wersji lub przeczytaj Robić rm przenieść do kosza .

kenorb
źródło