У баші все, що я знаю, це
rmdir directoryname
видалить каталог, але лише якщо він порожній. Чи є спосіб змусити видалити підкаталоги?
У баші все, що я знаю, це
rmdir directoryname
видалить каталог, але лише якщо він порожній. Чи є спосіб змусити видалити підкаталоги?
Відповіді:
Наступна команда зробить це за вас. Однак будьте обережні.
rm -rf directoryname
rm: invalid option -- r
помилку при спробі видалити каталог з rm -r <directoryname>.
rm -rf directoryname
coz, ви б не хотіли, щоб ваш сценарій призупиняв виконання, оскільки він чекає на введення користувачем. Звичайно, ви повинні бути впевнені, що видалення каталогу не принесе шкоди.
якщо rm -rf directoryname
ви не вдається, спробуйте скористатися rm -R -f directoryname
, або rm --recursive -f directoryname
.
Якщо з цим не пощастило, слід розглянути можливість перевстановлення rm або комутації оболонок.
man rm
щоб переглянути мої параметри щодо рекурсивного видалення та параметрів сили .
rm
список чоловічої сторінки -r
? Що це робить? (Спробуйте в каталозі, який ви створюєте лише для тестування, з ним є лише фіктивні файли (а може бути і підкаталоги).) Яку операційну систему ви використовуєте?
rm -r
не працює, це буде проблема ОС, а не проблема оболонки. (Строго кажучи, це буде проблема з версією rm
, яку ви використовуєте, тому ви можете вирішити її, встановивши іншу версію rm
або пошукаючи свою систему, щоб побачити, чи є у вас вже інша версія rm
в якомусь іншому каталозі, крім /bin
.)
man rm
у свій термінал, він подав мені текстовий файл із less
переглядачем тексту. Я прокручується знайшов відступом запис з усім , що мав -R і --recursive опції cozied вгору з -r варіант, що означає , що всі ці аргументи є ідентичними.
sudo rm -r directoryName
? Неписані правила основних команд полягають у тому -r
, що програма дозволить рекурсивно запускатись у кожному файлі вашої файлової системи (починаючи там, де вибираєте!), І що -f змушує робити це, навіть якщо це небезпечно . 'cd', 'mv', 'ls' здебільшого відповідає цьому принципу. ls -r /
буде дузі, і cp -rf / /dev/null
знищить усе у вашій файловій системі. <- Ніколи не виконуйте цю команду!
rm -r directoryname
.