Comando para remover todos os arquivos e pastas recursivamente, incluindo os ocultos, no MAC OS Terminal?

11

rm -rf * irá remover todos os arquivos e pastas, mas não os ocultos.

rm -rf .* removerá todos os arquivos e pastas ocultos, mas não aqueles que não estão ocultos, correto?

Qual comando deve ser digitado para excluir todos os arquivos e pastas, incluindo os ocultos? (exceto. e ..); ?

MEM
fonte

Respostas:

13
rm -rf * .*

fará o truque.

user1055604
fonte
1
NÃO! .*será expandido para todas as entradas invisíveis no diretório atual, incluindo .. - o que significa que usar .*como argumento para rm -rftentar excluir o diretório acima do diretório em que você está atualmente e todo o seu conteúdo . rm irá se recusar a fazê-lo, mas eu não considero contando com este seguro ...
Gordon Davisson
@Gordon Davisson: eu criei um diretório. Adicionei arquivos a ele, incluindo arquivos ocultos. Eu fiz esse comando. Ele excluiu todo o conteúdo desse diretório recursivamente e não excluiu nenhum conteúdo ACIMA desse diretório. Você pode esclarecer seu comentário?
MEM
Obrigado pelo esclarecimento sobre o seu comentário acima. Agora eu entendo o seu ponto. Alguma sugestão alternativa então?
MEM
como sobre o uso findcom a -deletebandeira ...
user1055604
1
@GordonDavisson rmdeve imprimir uma rm: "." and ".." may not be removedmensagem nesse caso - não removerá automaticamente o diretório pai.
Slhck 20/05/12
1

Tente o seguinte:

find . -mindepth 1 -delete

Não tenho certeza de que -mindepthseja suportado por todas as implementações de find; se o seu não tiver, -pathdeve dar outra maneira de impedir que ele seja excluído .:

find . -path "*/*" -delete
Gordon Davisson
fonte
O BSD também findtem essa opção, sim.
Slhck 20/05/12
1

Basta usar este comando para limpar arquivos / diretórios de acordo com critérios específicos:

# tmpwatch -fauv 0 .
Antoine Nguyen
fonte
0

shopt -s dotglobtambém faz *incluir arquivos que começam com um ponto.

Lri
fonte