
Итак, мои навыки работы с командной строкой немного заржавели, и мне трудно запомнить различия между значениями флагов в ОС разных дистрибутивов. Я также не очень хорошо помню весь свой технический жаргон, поэтому страницы руководства кажутся мне совершенно непонятными.
В общем, я работаю на Mac OS X и хочу удалить каталог вместе со всем его содержимым. Что меня больше всего беспокоит, так это то, что он удалит буквально ВСЕ ссылки в каталоге, включая ../ и ../, <everything else, including ../'s own ../>
а затем просто полностью испортит всю мою систему.
Какой из них я хочу запустить?
$ rm -R dir-name/
или
$ rm -r
решение1
Если вы хотите удалить foo/bar
, то нужная вам команда rm -r foo/bar
(предполагая, что вы работаете в каталоге, содержащем foo
). Это удалит bar
и все, что в нем находится, но оставит foo
и все остальное в нем нетронутым.
rm -r
достаточно умен, чтобы не рекурсивно входить ../
- в противном случае every rm -r
удалил бы все.
решение2
Если вы запустите:
rm -r
без передачи аргумента каталога/файла ничего не произойдет.
Нет никакой разницы между:
rm -r xyz
rm -R xyz
rm -r xyz/
и т. д.
решение3
Вы также можете добавить -f, если не хотите получать запрос на подтверждение:
rm -rf xyz