remova o conteúdo do diretório de maneira elegante

remova o conteúdo do diretório de maneira elegante

Gostaria de remover todo o conteúdo do diretório de trabalho atual. Como fazer isso de forma eficiente e elegante?

Tenho vários arquivos, diretórios e alguns deles começam com ponto, como:

touch .abc; touch abcd ; mkdir foobar; touch "file name" "#"

Estou procurando uma solução elegante e compatível com posix para deixar este diretório vazio. Vou postar algumas de minhas idéias, mas nenhuma delas é perfeita.

Responder1

rm -rf -- * .*

Isso é portátil e funciona, mas é feio, porque exceto com zsh, emite avisos:

rm: cannot remove directory: `.'
rm: cannot remove directory: `..'

Responder2

Experimente isto:

find . -maxdepth 1 -not -name \. -exec rm -rf \{\} ;

Responder3

POSIXamente:

rm -rf -- * .[!.]* ..?*

Aquele poderia falhar se a lista de arquivos fosse muito grande, este não:

find . ! -name . -prune -exec rm -rf {} +

Com zsh:

rm -rf -- *(D)

Responder4

que tal

 rm -rf * .[a-z]* .[A-Z]* .[0-9]*

isso vai funcionar? ou você também tem outros padrões de nome de arquivo que correspondam?

informação relacionada