On rm: To odłącza plik z to inode. Pytanie: „Gdzie idą pliki po rmwydaniu polecenia” -> unix.stackexchange.com/questions/10883/… może być dla Ciebie również dobrym pomysłem.
erch
Odpowiedzi:
62
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 aliasalternatywnych poleceń usuwania plików. Dodaj je do swojego ~/.bashrci 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 ynatychmiast po wydaniu rmipolecenia, ponieważ to pokona cel.
Możesz także przenieść pliki usunięte trshpoleceniem 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
trash () {mv $ @ ~ / .Trash; } # funkcja bash, nie alias. Zmiana oczekiwanego zachowania rm to zły pomysł, IMHO.
Richard Hoskins
20
Ryzyko z aliasing rmna rm -ito, że można się przyzwyczaić do siatki bezpieczeństwa, że daje. Następnie wchodzisz na inną maszynę, która nie ma tego aliasu ...
Dentrasi
3
Z powodów, o których wspominają Richard i Dentrasi, wolę utworzyć niestandardową funkcję lub alias rmi-> rm -i. Naprawdę błędem jest po prostu przeszkadzanie w istniejącym programie przez aliasing nad nim.
Telemachus
6
Nie ma kosza dla wiersza poleceń.
Możesz wypróbować niektóre narzędzia do usuwania, ale nie ma gwarancji, że będą działać.
Tak, w linii poleceń jest kosz. Zobacz trash-cli w innej odpowiedzi.
Sparhawk
Trash-cli jest tak dobry :) i używa Trashlib, lepiej niż zwykłe przenoszenie plików.
m3nda
5
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.
trash-cli zapewnia także współpracę z GNOME trash i został zaprojektowany w celu zapewnienia kompatybilności opcji rm (do aliasingu).
Andrea Francia,
Nie zapomnij, aby alias rm=trashTwoje typowe błędy wiersza poleceń były wyposażone w przyciski cofania.
Ryan C. Thompson
Myślę, że alias rm=trashjest 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 trashzamiast rm.
Sparhawk
4
Możesz utworzyć rmalias dla trashpolecenia (musisz trashnajpierw 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 trashdowiedzieć się, gdzie znajduje się rzeczywisty folder śmieci.
btw opublikowałbym to w komentarzu, ale nie mam wystarczającej liczby przedstawicieli.
+1 za „ponieważ ~ / .Trash NIE jest folderem na śmieci dla gnome”. Jednak rm nie powinien być również aliasowany do kosza. Powinieneś użyć kosza zamiast rm, jeśli tego chcesz.
nagul
To prawda, ale dla niektórych osób stare nawyki umierają ciężko.
Alvin Row,
„rmtrash” to kolejna opcja.
Itachi,
3
Dwa kolejne rozwiązania techniczne nie zostały jeszcze nazwane:
libtrash : biblioteka dynamiczna, którą można wstępnie załadować do powłoki, która przechwytuje usuwanie / usuwanie syscalli i przenosi pliki do folderu kosza (podobnie jak alias, ale działa po uruchomieniu dowolnej aplikacji).
System plików z wersjami. Jeśli usuniesz (lub edytujesz, kopiujesz lub ...) plik, możesz po prostu przywrócić stary stan. Można to zrobić za pomocą systemu plików FUSE i jednego z jego systemów plików wersji .
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:
Oryginalna strona internetowa zniknęła. Powyższy link prowadzi do archiwum internetowego.
Witryny są w języku angielskim i niemieckim.
Jak wspomniano powyżej, narzędzie zostało zaprojektowane specjalnie dla systemu plików ext2. Jest mało prawdopodobne, aby działał na jakimkolwiek innym systemie plików; zwłaszcza nie te inne niż ext N .
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 ...
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:
Użyj narzędzia kontroli wersji, na przykład gitdo wszystkich zadań. Chociaż nie ochroni to przed wariatem, rm -rktóry zabije repozytorium, ochroni go przed zwykłymi problemami, ponieważ będziesz używać git rmnie surowego rm.
Bądź bardzo ostrożny i nie ufaj zbytnio rm -i, trash-clii 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 mvi inne rzeczy, tj. Rzeczy, które zastąpią twoje dane, nie tylko je usuwaj.
Wykonaj wszystkie trzy, aby uzyskać maksymalne bezpieczeństwo.
Bardzo zabawnie jest nazywać ext2 modern. Nowsze systemy plików używają bardziej skomplikowanych formatów na dysku niż ext2 / 3 i musiały zrezygnować z łatwych do znalezienia lokalizacji, w których można znaleźć pliki do usunięcia. Są przeznaczone dla osób, które wykonują kopie zapasowe rzeczy, na których im zależy. BTW, zawsze używam mv i cp -i, ponieważ normalnie nie chcę niczego blokować. Zwykle piszę \ rm, ponieważ mam też aliasy do rm -i, ale nie chcę odpowiadać na to pytanie.
są równoważne. skrypt obsługuje więcej przypadków i nie zmienia rmw 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 testdisktwó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
Witamy w Super User! Przeczytaj Jak polecać oprogramowanie, aby uzyskać minimalne wymagane informacje i sugestie, jak polecać oprogramowanie superużytkownikowi. Aby Twoja odpowiedź była użyteczna, nawet jeśli podany link (łącza) się zepsuje, dane te należy edytować w swojej odpowiedzi.
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.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 zamiastrm
.Jeśli użyjesz
rmi
, pojawi się monit o potwierdzenie przyszłych usunięć. Staraj się unikać rozwijania nawyku naciskaniay
natychmiast po wydaniurmi
polecenia, ponieważ to pokona cel.Możesz także przenieść pliki usunięte
trsh
poleceniem w terminalu do kosza (w KDE i Gnome):Jeśli użyjesz
trsh
, będziesz mieć ograniczone możliwości „cofnięcia usunięcia”. Uważaj na tomoże nadal powodować nieodwracalną utratę danych.
źródło
rm
narm -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.Nie ma kosza dla wiersza poleceń.
Możesz wypróbować niektóre narzędzia do usuwania, ale nie ma gwarancji, że będą działać.
źródło
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.
źródło
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 pisaniatrash
zamiastrm
.Możesz utworzyć
rm
alias dlatrash
polecenia (musisztrash
najpierw zainstalować .) Dodaj to do~/.bashrc
:Jest to lepsze niż,
alias rm='mv --target-directory=$HOME/.Trash'
ponieważ ~ / .Trash NIE jest folderem na śmieci dla gnome. Lepiej IMHO, abytrash
dowiedzieć się, gdzie znajduje się rzeczywisty folder śmieci.btw opublikowałbym to w komentarzu, ale nie mam wystarczającej liczby przedstawicieli.
źródło
Dwa kolejne rozwiązania techniczne nie zostały jeszcze nazwane:
źródło
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.źródło
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:
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 ...
źródło
Odzyskaj używając grep na
/dev/partition
( Linux lub Unix Odzyskaj usunięte pliki - cofnij usunięcie plików ),Po prostu spróbuj.
źródło
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 surowegorm
.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 przypadkoworm
, ale przez źle przekierowane potoki, błędnie przekierowane pliki wyjściowe, błędnie przekierowanemv
i inne rzeczy, tj. Rzeczy, które zastąpią twoje dane, nie tylko je usuwaj.Wykonaj wszystkie trzy, aby uzyskać maksymalne bezpieczeństwo.
źródło
sprawdź to ... może być pomocne http://artmees.github.io/rm/
Załóżmy, że tak
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ż
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żywaniajest to wyrafinowane podejście aliasingowe, ale bez utraty żadnej funkcji
źródło
TestDisk może cofnąć usunięcie plików z systemów plików FAT, exFAT, NTFS i ext2 .
źródło
Dla mnie (opensuse skok 42.2, pendrive NTFS) PhotoRec - także przez
testdisk
twórców - działał :) Jednak nie odzyskał nazw plików.Zainstalowałem go przy użyciu standardowych repozytoriów w openSUSE
instrukcja
źródło