
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?