
Portanto, minhas habilidades de linha de comando estão um pouco enferrujadas e estou tendo problemas para lembrar as diferenças entre os significados dos sinalizadores em diferentes sistemas operacionais de distro. Eu também não me lembro de toda a minha linguagem técnica, então as páginas de manual parecem muito pouco claras.
Basicamente, estou no Mac OS X e quero excluir um diretório junto com todo o seu conteúdo. O que mais me preocupa, suponho, é que ele excluirá literalmente TODAS as referências dentro do diretório, incluindo ../ e ../ <everything else, including ../'s own ../>
e então estragará totalmente todo o meu sistema.
Qual destes eu quero executar?
$ rm -R dir-name/
ou
$ rm -r
Responder1
Se você deseja excluir foo/bar
, o comando desejado é rm -r foo/bar
(supondo que você esteja trabalhando no diretório que contém foo
). Isso excluirá bar
tudo o que estiver contido nele, mas deixará foo
tudo o mais contido nele.
rm -r
é inteligente o suficiente para não recorrer ../
- caso contrário, every rm -r
excluiria tudo.
Responder2
Se você executar:
rm -r
sem passar um argumento de diretório/arquivo, nada acontecerá.
Não há diferença entre:
rm -r xyz
rm -R xyz
rm -r xyz/
etc.
Responder3
Você também pode adicionar -f se não quiser solicitar confirmação:
rm -rf xyz