W bash wiem tylko, że
rmdir directoryname
usunie katalog, ale tylko jeśli jest pusty. Czy istnieje sposób na wymuszenie usunięcia podkatalogów?
Odpowiedź
Następujące polecenie zrobi to za Ciebie . Należy jednak zachować ostrożność.
rm -rf directoryname
Komentarze
Odpowiedz
jeśli rm -rf directoryname
zawiedzie, spróbuj użyć rm -R -f directoryname
lub rm --recursive -f directoryname
.
Jeśli nie masz z nimi szczęścia, powinieneś rozważyć ponowną instalację rm lub zmianę powłok.
Komentarze
- To były opcje dostępne w moim rm man, sprawdziłem to, wpisując
man rm
, aby wyświetlić moje opcje rekursywnego usuwania i opcji wymuszenia . - Czy Twój
rm
lista stron podręcznika-r
? Co to robi? (Wypróbuj go w katalogu, który tworzysz tylko do celów testowych, z tylko fikcyjnymi plikami (i być może podkatalogami).) Jakiego systemu operacyjnego używasz? - P.S. Jeśli
rm -r
nie ' nie działa, byłby to problem z systemem operacyjnym, a nie 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 przeszukaj system, aby sprawdzić, czy masz już inną wersjęrm
w jakimś katalogu innym niż/bin
.) - Ach, racja. Zapomniałem wspomnieć, że ' m na Ubuntu 14.04 Kiedy uruchomiłem
man rm
na moim terminalu, dostałem plik tekstowy zless
przeglądarka tekstu. Przewinąłem i znalazłem wpis z wcięciem z całością, który miał opcje -R i –recursive połączone z opcją -r , co oznacza, że wszystkie te argumenty są identyczne. - edit: czy próbowałeś już
sudo rm -r directoryName
? Niepisane zasady podstawowych poleceń są takie, że-r
pozwoli programowi na rekurencyjne uruchamianie każdego pliku w systemie plików (zaczynając od dowolnego wybranego przez ciebie miejsca!) I że -f zrobi wszystko na siłę, nawet jeśli jest ' jest niebezpieczne . ' cd ', ' mv ', ' ls ' głównie potwierdza tę zasadę.ls -r /
będzie duzie, acp -rf / /dev/null
zniszczy wszystko w Twoim systemie plików. < – Nigdy nie uruchamiaj tego polecenia!
rm -r directoryname
.rm: invalid option -- r
, próba usunięcia katalogu za pomocą rm -r < nazwa katalogu >.rm -rf directoryname
bo nie ' nie chcesz, aby Twój skrypt wstrzymał wykonywanie, ponieważ ' czeka na dane wejściowe użytkownika. Oczywiście musisz mieć pewność, że usunięcie katalogu nie zaszkodzi.