Korzystam z terminala na co dzień, często go używam rm DirectoryName
. Czasami jestem trochę szalony i robię to rm *
. Jak możesz sobie wyobrazić, te shenanigany czasami wracają i uderzają mnie w twarz. Czy ktoś wie, jak tworzę mapowanie, więc rm whatever
przenosi wszystko do kosza, który następnie usuwam ręcznie.
62
mv /file/to/delete ~./Trash
alias rm=/bin/rm -i
powinno cię bezpiecznie wyszkolić ze szaleństwa . Ponadto - z którego katalogu Kosz chcesz korzystać rm? Robi się niezręczny, ponieważ Mac OS X ma katalog śmieci dla każdego wolumenu, a także kosz na poziomie użytkownika.rm *
lubrm /path/*
Odpowiedzi:
Zły pomysł
Korzystanie
rm
przenieść pliki do kosza jest jak chwast. Jest to powszechne i przyjemne, ale może być dla ciebie złe w przyszłości. ;)Podczas korzystania z urządzenia naprawdę potrzebujesz kontroli
rm
.Nie używaj rm
Wyobraź sobie , że przyzwyczajasz się do rm przeprowadzania się do kosza i nabierania tego nawyku. Jasne, twój system jest bezpieczny, ale kiedy zalogujesz się do notatnika znajomego (lub żony lub szefa) i będziesz musiał coś usunąć? Będziesz faktycznie używał prawdziwego
rm
- usuwając te pliki na zawsze. To zły nawyk i musisz o tym wiedzieć.Zamiast tego zainstaluj
rmtrash
i nawyk korzystania z niego:Korygowanie złych nawyków
Inną rzeczą, którą możesz zrobić, aby zmusić się do użycia
rmtrash
zamiast,rm
jest alias do niestandardowej wiadomości w twoim.profile
.Tak więc, za każdym razem, gdy użyjesz, pojawi
rm
się monit o użyciermtrash
albo/bin/rm
. Pamiętaj, że jest to tylko tymczasowe, po chwili powinieneś usunąć alias.Nigdy nie rób czegoś takiego:
Pop Quiz: W jakim katalogu
rm
uruchomi się polecenie? :)Ps: Właśnie usunąłem niechciane zmiany w tym poście, co dodało nonsensów na temat aliasów.
źródło
&&
jest twoją liną ratunkową.;
jest diabłem. PS Odpowiedź jest taka, że prawie wszystko w twoim systemie znika, w powyższym przykładzie.trash-cli
Zamiast tego instalują użytkownicy Debian / Ubuntu , np.aptitude install trash-cli
- patrz github.com/andreafrancia/trash-clibrew install trash
rmtrash
jest naprawdę stary, ostatnio aktualizowany w 2003 roku i pokazuje. Ma o wiele mniej opcji niżrm
i jeśli powieszrmtrash
na woluminie dodatkowym, przenosi te pliki do folderu kosza użytkownika na dysku systemowym, co może zająć dużo czasu w przypadku dużych plików.trash
Opcja zalecana przez Parth jest lepiej, rozwiązując problem keep na tej samej objętości, ale nadal brakuje wielurm
opcji.Mogę wymyślić kilkanaście sposobów na zakodowanie tego, ale kategorycznie odmówię wpisania któregokolwiek z nich w odpowiedzi. Ja zdecydowanie polecam ograniczyć swój zwyczaj coraz trochę szalona . Nie powinieneś mieć w ogóle zwyczaju używania,
rm
jeśli nie możesz go prawidłowo używać.Podstawowym problemem jest to, że nawet jeśli zainstalujesz siatkę bezpieczeństwa we własnym systemie, to pomoże ci tylko zachować złe nawyki, a kiedy zdarzy ci się być na innej maszynie, która nie ma takich samych niestandardowych zabezpieczeń, będziesz zrób coś niesamowicie złego.
Właściwym rozwiązaniem jest użycie
rm
go tak, jak miało być używane, w tym ręczne dodawanie-i
argumentu, gdy masz wątpliwości, jak glob rozszerzy się, i masz dobre kopie zapasowe systemu, które możesz przywrócić w przypadku poważnego błędu użytkownika. Próba dodania „kosza” do poleceń, których w pozostałej części wszechświata nie używa, jest krokiem w połowie najgorszym z obu światów.Użyj kosza lub nie. Używanie
rm
nie idzie do kosza, usuwa.Jeśli chcesz korzystać z kosza, nie ma w tym nic złego. Po prostu przyzwyczaj się do używania
rmtrash
polecenia zamiastrm
. Pomoże to twojemu mózgowi zrozumieć, co się dzieje, i nie doprowadzi cię do złego nawyku, który spowoduje później smutek.źródło
rm
z definicji usuwa plik z dysku. Nie wysyła go do kosza. Nauczenie się używania,rm
gdy masz na myśli wysyłanie do kosza , przygotowuje cię na katastrofę. Jeśli chcesz wysłać do kosza, użyćrmtrash
lub programu, który został zaprojektowany do tego zadania, to później nie spotkasz koszmarów. Nie mówiłem, że używanie kosza jest z natury złe, ale jeśli chcesz go użyć, nie podłączaj go do czegoś, co nie było przeznaczone do użycia!brew install rmtrash
i przestań używaćrm
rmtrash
zamiastrm
.Istnieją sposoby, aby uchronić się przed strasznymi skutkami
rm
. Zgadzam się jednak z innymi komentatorami tutaj: bardzo niewielu jest dobrych.Ani przez chwilę nie wierz, że zmiana środowiska poleceń pomoże ci. Na przykład wszędzie znajdziesz ludzi online, którzy zalecają zrobienie czegoś takiego:
lub
To nie zadziała. Kropka. Istnieje wiele przypadków użycia, w których te małe sztuczki salonowe zawiodą cię nieszczęśliwie.
Jedynym niezawodnym sposobem, w jaki oszczędziłem sobie niebezpieczeństwa,
rm
jest regularne tworzenie kopii zapasowej za pośrednictwem crona w katalogach, w których pracuję. Raw UNIX robi to dla ciebie ładnie, z wielką prostotą, używającfind
w połączeniu z-mtime
do sprawdzania plików, które zostały zaktualizowane w określonym czasie lub od pewnego czasu.źródło
cron
sam. Dzięki :)Użyj narzędzia wiersza polecenia, takiego jak rmtrash lub skrypt tat używa appscript do wywoływania Findera w celu usunięcia.
Po zainstalowaniu rmtras w celu powiedzenia / usr / local / bin / rmtrash stwórz alias dla bash
Możesz użyć \ rm, aby bezpośrednio wywołać rm i zignorować alias
źródło
rmtrash
, zrób sobie przysługę i użyj go pod własną nazwą . Nigdy nie pseudonimem rzeczy, których nierm
należyrm
, któregoś dnia cię ugryzie.rmtrash
nie jest kompatybilny zrm
(nie obsługuje tych samych parametrów wiersza poleceń, co-r
), więc alias naprawdę nie jest przydatny w żadnym wypadkurmtrash
dorm
. Nie tylko nie są one kompatybilne, ale także wymuszą zły nawyk i przypadkowo użyjesz gorm
w innym systemie, myśląc, że tylko używaszrmtrash
.Po prostu chcę dodać nawyk przydatny dla tych, którzy jeszcze tego nie robią. Przed użyciem rm do czegokolwiek, najpierw wykonaj na nim „ls”. W ten sposób możesz zobaczyć wszystkie pliki, które zamierzasz usunąć. Następnie zamiast ponownego wpisywania, po prostu pociągnij poprzednie polecenie „ls” i zamień ls na rm. Ten nawyk zmniejszył wiele lęków podczas wywoływania rm.
źródło
Wprowadzenie (możesz to pominąć)
Dla mnie
rm -i
wystarczy, ponieważ monituje cię przed usunięciem dowolnego pliku. Jednak pewne dodatkowe zabezpieczenia zapewnione przezsafe-rm
wcale nie są złym pomysłem.Proste
alias
jakrm=safe-rm -i
mogłoby być wystarczające, jednakrm -rf
nie zadziałałoby, ponieważ-i
zostało zastąpione przez-f
.Musimy więc upewnić się, że
-i
zawsze nastąpi to później-f
!Moje rozwiązanie (3 kroki):
Zainstaluj safe-rm:
brew install safe-rm
Nadal możesz pracować
rm
, ale zmodyfikowałeśRM_BIN
w następnym krokuEdytuj swój
~/.profile
(lub bash_profile lub cokolwiek) i umieść następujący fragment kodu, (który zawiera analias
i afunction
):Wreszcie ,
logout
alogin
więc są stosowane aktualizacje w .profile. NIE używaj go przed wylogowaniem / zalogowaniem!Uwagi:
-rf
z wyrażeniami regularnymi.rm -rf
BEZ pytania o każdy pojedynczy plik / folder, którego możesz nadal używać/bin/rm -rf
(lubsafe-rm -rf
jeśli go zainstalowałeś).rm -rf
lubrm *
;)źródło
alias rm='sudo rm'
) Jest jak przypięcie Uzi do noża kuchennego: pewnego dnia dostaniesz więcej, niż się spodziewałeś, kiedy idziesz wyciąć tego ananasa. Aliowanie rm do czegokolwiek mniejszego od siebie (np.alias rm='rmtrash'
) Jest jak pozwalanie dzieciom na zabawę rozbrojonymi granatami ręcznymi i nie uczenie ich, czym one są: pewnego dnia, gdy napotkają prawdziwego, nie potraktują go z odpowiednią ostrożnością. Tak czy inaczej - aliasing rm jest szkodliwy dla twojego bezpieczeństwa osobistego i zdrowia publicznego!rm
? Również punkt Caleba jest jeszcze bardziej aktualny - jeśli przyzwyczaisz się do systemu z aliasem safe-rm, możesz się z nim lekkomyślnie wykorzystać i ostatecznie użyć go w systemie z niezmienionym rm.