Powiedzmy, że mam folder o nazwie *
pod /
. Wiem, że wspólne polecenia, takie jak rm -rf *, nie będą działać. Jakaś pomoc?
Powiedzmy, że mam folder o nazwie *
pod /
. Wiem, że wspólne polecenia, takie jak rm -rf *, nie będą działać. Jakaś pomoc?
Odpowiedzi:
Można pojedynczo cytować argumenty, aby zapobiec przetwarzaniu przez powłokę.
rm -r '/*'
Przetestuj go bezpiecznie za pomocą ls
(w folderach zawierających pliki):
$ ls '*'
ls: *: No such file or directory
W tym przypadku podwójne cudzysłowy również będą działać, ale jeśli będzie $
zaangażowani, nie zrobiliby tego, ponieważ powłoka zakładałaby, że jest to zmienna:
$ ls "foo$bar"
ls: foo: No such file or directory
$ ls 'foo$bar'
ls: foo$bar: No such file or directory
Dla GNU rm
, możesz również dodać --
przed argumentami nazwy pliku, aby zapobiec ich analizowaniu jako argumentów. Umożliwi to usunięcie nazwanych plików -rf
bez problemów.
&
) i unikaj ich indywidualnie, co może łatwo stać się większym wysiłkiem niż cytowanie raz. Dlatego uważam, że osoba uciekająca niżej i opublikowała tę alternatywę.
bash
strona podręcznika zajmuje trochę czasu, jeśli nie wiesz, czego szukać.
rm *
zadziała, aby usunąć ten folder.