W pewnym momencie zrobiłem coś szalonego, co spowodowało utworzenie pliku -rf
w moim systemie plików.
Teraz nie mogę wymyślić, jak go usunąć ...
Próbowałem:
rm "-rf"
rm \-rf
Po prostu wychodzą natychmiast, arrgh!
Czy ktoś wie, jak usunąć ten plik? Najlepiej bez przypadkowego wyczyszczenia całego folderu.
rm
plik wywołany-rf
z twojego systemu, nie pamiętając dokładnej składni!rm
(w toargc
aargv
) Zatem oba te wynikają w tablicy["rm", "-rf"]
są przekazywanerm
, co spełnia oczekiwania*
w folderze. Dołącz też jeden o nazwie-rf
i obserwuj zabawę ;-)mkdir './-rf '
(ls --classify, wspólne ustawienie domyślne w aliasie powłoki, dołącza /)Odpowiedzi:
Lub
źródło
getopt
ma--
, co powinno oznaczać najbardziej nowoczesnych narzędzi Linux.Inna opcja:
... zakładając, że bieżący katalog jest tym, w którym znajduje się plik.
źródło
Alternatywnie możesz zawsze edytować katalog w nim i usunąć plik w ten sposób.
a następnie po prostu usuń wiersz z plikiem na nim (użycie D, dd nie będzie działać).
źródło
vim
ma tryb dired. Oczywiście edycja samego katalogu w edytorze tekstów nie jest ani zalecana, ani możliwa bez prawdziwego eksperckiego skakania. Pamiętaj, żeemacs
to też zadziała i z tego samego powodu.Należy zastosować ogólną technikę usuwania dziwnych nazw plików.
znaleźć numer i-węzła pliku, a następnie użyć.
Nie musisz pamiętać wszystkich specjalnych przypadków.
źródło
find
ma moc usuwania plików.Chociaż wiem o sztuczce „rm - -filename”, zazwyczaj kiedy w jakiś sposób otrzymuję plik z wiodącym - w jego nazwie, którą chcę usunąć, uruchamiam menedżera plików GUI i robię to stamtąd, aby wyeliminować szansę błędów.
źródło
Jeśli chcesz mieć pewność:
źródło
Na wypadek, gdybyś był na Uniksie innym niż GNU, gdzie czujesz, że wróciłeś do epoki kamienia łupanego (brak
--
składni, brak-inum
przełącznika wyszukiwania, brak polecenia rozłączenia, edytor odmawia edycji katalogów itp.), Możesz nadal sobie pomóc:Spowoduje to, że find prześle wszystkim potencjalnym kandydatom do rm, który z kolei poprosi o pozwolenie / odmowę dla każdego pliku, który zostanie podany.
Jeśli
rm
nawet nie obsługujesz-i
przełącznika (HP-UX 10.2 na PA-RISC 1.1?), Bądź bardziej ostrożny:źródło
find
?Wspierając odpowiedź Jleedev , poprawiłbym:
być w trybie interaktywnym i poprosić o potwierdzenie, aby naprawdę mieć pewność, co usuniesz. (chociaż rozwiązanie jest w porządku. to po prostu dla twojego spokoju)
Właściwie nawet użyj tego:
aby mieć pewność, że nie używasz żadnych aliasów.
źródło
Jak już sugerowano, zawsze korzystałem ze składni
kiedy musiałem usunąć plik z myślnikiem jako przedrostkiem, ponieważ - mówi do polecenia, że nie szuka on żadnego innego parametru, tylko nazwy plików.
Mając to na uwadze, w celu ochrony mojego ważnego folderu przez przypadkowe usunięcie pliku zostałem użyty do utworzenia pustego pliku o nazwie po prostu -i, który zwykle jest umieszczany na górze listy plików podczas rozwiązywania * wyszukiwania. Więc polecenie
kiedy wycinany w moim chronionym folderze zostanie rozbity, w trakcie wykonywania, w poleceniu:
a powłoka, zamiast natychmiastowego usuwania wszystkiego, przestaje pytać o potwierdzenie (jak wymaga opcji -i).
źródło
-i
włamanie do nazwy pliku - „I” był sceptyczny, ale testuje się!Ostatnim razem, gdy miałem ten problem, rozwiązałem go za pomocą:
pyton
import os
os.remove („- rf”)
źródło
Martin Clayton ma rację.
To jest bardzo proste i logiczne. Jeśli istnieją opcje to zawsze
-XXX
albo--CCCC
więc jeśli umieścić./
lub pełna ścieżka-rf
nie może być uważany jako opcja i będą traktowane jako normalny ciąg.Działa z „wszystkimi” dziwnymi nazwami plików.
źródło
rm - -rf większość narzędzi GNU akceptuje - jako znacznik końca opcji
źródło