@JimParis Myślę, że słowo „bezpieczniejsze” jest względne. Załóżmy, że piszesz skrypt do uruchomienia na komputerze zdalnym. Ten skrypt ma polecenie, które ma usunąć katalog. W tym przypadku „bezpieczniej” byłoby używać rm -rf directoryname, ponieważ nie chcesz, aby skrypt wstrzymywał wykonywanie, ponieważ czeka na dane wejściowe użytkownika. Oczywiście musisz mieć pewność, że usunięcie katalogu nie zaszkodzi.
John Red,
7
jeśli rm -rf directorynameCi się nie powiedzie, spróbuj użyć rm -R -f directorynamelub rm --recursive -f directoryname.
Jeśli nie masz z nimi szczęścia, powinieneś rozważyć ponowne zainstalowanie rm lub zmianę powłoki.
Były to opcje dostępne na mojej stronie podręcznika użytkownika rm, sprawdziłem to, pisząc, man rmaby wyświetlić moje opcje dotyczące usuwania rekurencyjnego i opcji wymuszenia .
saterHater
Czy twoja rmlista stron man -r? Co to robi? (Wypróbuj w katalogu utworzonym tylko do celów testowych, w którym znajdują się tylko fikcyjne pliki (i może podkatalogi)). Z jakiego systemu operacyjnego korzystasz?
G-Man,
PS Jeśli rm -rnie działa, byłby to problem z systemem operacyjnym, a nie problem z powłoką. (Ściśle mówiąc, byłby to problem z wersją rm, której używasz, więc możesz rozwiązać ten problem, instalując inną wersję rmlub przeszukując system, aby sprawdzić, czy masz już inną wersję rmw katalogu innym niż /bin.)
G-Man,
Ah, tak. Zapomniałem wspomnieć, że korzystam z Ubuntu 14.04. Kiedy uruchomiłem man rmterminal, dostałem plik tekstowy z lessprzeglądarką tekstów. Przewinąłem znalazłem wcięty wpis z całością, która zawierała opcje -R i --recursive wraz z opcją -r , co oznacza, że wszystkie te argumenty są identyczne.
saterHater
1
edycja: próbowałeśsudo rm -r directoryName ? Niepisane reguły podstawowych poleceń -rpozwalają programowi na rekurencyjne uruchamianie na każdym pliku systemu plików (zaczynając od miejsca, w którym wybierzesz!), I że -f będzie zmuszał robić rzeczy, nawet jeśli jest to niebezpieczne . „cd”, „mv”, „ls” w większości utrzymuje tę zasadę jako prawdę. ls -r /będzie duzie i cp -rf / /dev/nullzniszczy wszystko w twoim systemie plików. <- Nigdy nie uruchamiaj tego polecenia!
rm -r directoryname
.rm: invalid option -- r
błąd podczas próby usunięcia katalogu za pomocą rm -r <nazwa_katalogu>.rm -rf directoryname
, ponieważ nie chcesz, aby skrypt wstrzymywał wykonywanie, ponieważ czeka na dane wejściowe użytkownika. Oczywiście musisz mieć pewność, że usunięcie katalogu nie zaszkodzi.jeśli
rm -rf directoryname
Ci się nie powiedzie, spróbuj użyćrm -R -f directoryname
lubrm --recursive -f directoryname
.Jeśli nie masz z nimi szczęścia, powinieneś rozważyć ponowne zainstalowanie rm lub zmianę powłoki.
źródło
man rm
aby wyświetlić moje opcje dotyczące usuwania rekurencyjnego i opcji wymuszenia .rm
lista stron man-r
? Co to robi? (Wypróbuj w katalogu utworzonym tylko do celów testowych, w którym znajdują się tylko fikcyjne pliki (i może podkatalogi)). Z jakiego systemu operacyjnego korzystasz?rm -r
nie działa, byłby to problem z systemem operacyjnym, a nie problem z powłoką. (Ściśle mówiąc, byłby to problem z wersjąrm
, której używasz, więc możesz rozwiązać ten problem, instalując inną wersjęrm
lub przeszukując system, aby sprawdzić, czy masz już inną wersjęrm
w katalogu innym niż/bin
.)man rm
terminal, dostałem plik tekstowy zless
przeglądarką tekstów. Przewinąłem znalazłem wcięty wpis z całością, która zawierała opcje -R i --recursive wraz z opcją -r , co oznacza, że wszystkie te argumenty są identyczne.sudo rm -r directoryName
? Niepisane reguły podstawowych poleceń-r
pozwalają programowi na rekurencyjne uruchamianie na każdym pliku systemu plików (zaczynając od miejsca, w którym wybierzesz!), I że -f będzie zmuszał robić rzeczy, nawet jeśli jest to niebezpieczne . „cd”, „mv”, „ls” w większości utrzymuje tę zasadę jako prawdę.ls -r /
będzie duzie icp -rf / /dev/null
zniszczy wszystko w twoim systemie plików. <- Nigdy nie uruchamiaj tego polecenia!