Odpowiedzi:
Nie ma ogólnego „cofnięcia” dla każdej operacji w terminalu. Jeśli chcesz odzyskać plik po użyciu rm
, musisz zajrzeć do oprogramowania do odzyskiwania.
Opcją zapobiegającą przyszłym błędom jest utworzenie alias
alternatywnych poleceń usuwania plików. Dodaj je do swojego ~/.bashrc
i zacznij używać ich zamiast rm
.
alias rmi = 'rm -i'
Jeśli użyjesz rmi
, pojawi się monit o potwierdzenie przyszłych usunięć. Staraj się unikać rozwijania nawyku naciskania y
natychmiast po wydaniu rmi
polecenia, ponieważ to pokona cel.
Możesz także przenieść pliki usunięte trsh
poleceniem w terminalu do kosza (w KDE i Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Jeśli użyjesz trsh
, będziesz mieć ograniczone możliwości „cofnięcia usunięcia”. Uważaj na to
trsh dir1/file1 dir2/file1
może nadal powodować nieodwracalną utratę danych.
rm
na rm -i
to, że można się przyzwyczaić do siatki bezpieczeństwa, że daje. Następnie wchodzisz na inną maszynę, która nie ma tego aliasu ...
rmi
-> rm -i
. Naprawdę błędem jest po prostu przeszkadzanie w istniejącym programie przez aliasing nad nim.
Możesz użyć trash-cli, jeśli używasz KDE podczas uruchamiania GUI. Jest to narzędzie wiersza polecenia do usuwania / przywracania za pomocą funkcji kosza na śmieci KDE.
alias rm=trash
Twoje typowe błędy wiersza poleceń były wyposażone w przyciski cofania.
alias rm=trash
jest potencjalnie niebezpieczny, jeśli istnieje szansa, że pewnego dnia użyjesz cudzego systemu i zapomnisz (lub ssh). Znacznie bezpieczniej jest po prostu przyzwyczaić się do pisania trash
zamiast rm
.
Możesz utworzyć rm
alias dla trash
polecenia (musisz trash
najpierw zainstalować .) Dodaj to do ~/.bashrc
:
alias rm='trash'
Jest to lepsze niż, alias rm='mv --target-directory=$HOME/.Trash'
ponieważ ~ / .Trash NIE jest folderem na śmieci dla gnome. Lepiej IMHO, aby trash
dowiedzieć się, gdzie znajduje się rzeczywisty folder śmieci.
btw opublikowałbym to w komentarzu, ale nie mam wystarczającej liczby przedstawicieli.
Dwa kolejne rozwiązania techniczne nie zostały jeszcze nazwane:
Tutaj jest większe pytanie, na które warto odpowiedzieć. Polecenia powłoki nie są gadatliwe (nie sprawdzają dokładnie tego, czego chcesz) i oczekują, że wiesz, co robisz. Ma to zasadnicze znaczenie dla ich konstrukcji . To funkcja, a nie błąd.
Niektórzy ludzie czują macho, gdy używają takich poleceń, co moim zdaniem jest dość głupie, ale ważne jest, aby zrozumieć niebezpieczeństwa. Możesz zadać ogromne obrażenia w terminalu, nawet jeśli nie jesteś rootem. Myślę, że prawdopodobnie tak naprawdę ci na tym zależało rm
, ale ponieważ powiedziałeś „Czy możemy cofnąć operacje wykonane w terminalu”, pomyślałem, że warto o tym powiedzieć. Ogólna odpowiedź brzmi: nie, nie możesz.
Opcja 1: Zobacz Cofnij usuwanie plików systemu Linux z systemu plików ext2 . Ta strona wskazuje program napisany przez Sebastiana Hetze z firmy LunetIX, który (jak sugeruje tytuł) usuwa ostatnio usunięte pliki z systemu plików ext2. Przykładowe użycie:
# undelete -d /dev/hdc3 -a 10
Ostrzeżenia:
Opcja 2: Mam rsnapshot (rsync) działający na moim komputerze, co sprawia, że co godzinę migawki moich wybranych folderów. Stopniowo robi to co godzinę, 2 godziny lub cokolwiek, co każesz CRONowi zrobić. Po całym dniu przetwarza te migawki w jedną dzienną migawkę, a po 7 dniach w tygodniu i tak dalej. To pozwala mi cofać się w czasie o około miesiąc na każdą godzinę! Jest całkiem niezły w przypadku miejsca na dysku, ponieważ tworzy symboliczne łącza do plików, które nigdy się nie zmieniły ...
Odzyskaj używając grep na /dev/partition
( Linux lub Unix Odzyskaj usunięte pliki - cofnij usunięcie plików ),
grep -b 'search-text' /dev/partition > file.txt
Po prostu spróbuj.
Istnieją narzędzia do cofnięcia usunięcia dla ext2, ale większość innych systemów plików Linux utknęła w epoce kamienia łupanego i nie ma żadnych zaawansowanych funkcji użyteczności. Smutny stan rzeczy, biorąc pod uwagę gigantyczne dyski z wystarczającą ilością miejsca, aby nigdy więcej nie usuwać pliku, są powszechne.
Więc utkniesz z trzema opcjami:
Wykonuj kopie zapasowe regularnie, na przykład za pomocą polecenia:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Użyj narzędzia kontroli wersji, na przykład git
do wszystkich zadań. Chociaż nie ochroni to przed wariatem, rm -r
który zabije repozytorium, ochroni go przed zwykłymi problemami, ponieważ będziesz używać git rm
nie surowego rm
.
Bądź bardzo ostrożny i nie ufaj zbytnio rm -i
, trash-cli
i znajomym, ponieważ większość danych, które stracisz w powłoce, nie stracisz przypadkowo rm
, ale przez źle przekierowane potoki, błędnie przekierowane pliki wyjściowe, błędnie przekierowane mv
i inne rzeczy, tj. Rzeczy, które zastąpią twoje dane, nie tylko je usuwaj.
Wykonaj wszystkie trzy, aby uzyskać maksymalne bezpieczeństwo.
sprawdź to ... może być pomocne http://artmees.github.io/rm/
Załóżmy, że tak
rm very_important_file
z terminalu. odzyskanie tego pliku jest żmudnym i nie zawsze udanym procesem
zamiast tego, jeśli użyłeś wspomnianego skryptu. nie musisz się tym martwić, ponieważ
rm very_important_file
mv very_important_file ~/.Trash/
są równoważne. skrypt obsługuje więcej przypadków i nie zmienia rm
w ogóle twojego systemu , ponieważ jest umieszczony w lokalnym folderze bin użytkownika, więc rzuca cień na system rm, a jednak nie wpływa na niego ani nie wyłącza jego używania
jest to wyrafinowane podejście aliasingowe, ale bez utraty żadnej funkcji
Dla mnie (opensuse skok 42.2, pendrive NTFS) PhotoRec - także przez testdisk
twórców - działał :) Jednak nie odzyskał nazw plików.
PhotoRec to oprogramowanie do odzyskiwania danych plików zaprojektowane do odzyskiwania utraconych plików, w tym wideo, dokumentów i archiwów z dysków twardych, płyt CD-ROM i utraconych zdjęć (stąd nazwa Photo Recovery) z pamięci aparatu cyfrowego. PhotoRec ignoruje system plików i idzie za bazowymi danymi, więc nadal będzie działać, nawet jeśli system plików multimediów został poważnie uszkodzony lub sformatowany.
Zainstalowałem go przy użyciu standardowych repozytoriów w openSUSE
rm
: To odłącza plik z toinode
. Pytanie: „Gdzie idą pliki porm
wydaniu polecenia” -> unix.stackexchange.com/questions/10883/… może być dla Ciebie również dobrym pomysłem.