find
GNU ou não GNU
Com a versão GNU de find
você pode escrever diretamente, sem procurar por seu inode,
find . -name '.<*' -delete
é claro que é sempre sugerido tentar antes sem a opção -delete
e verificar o nome dos arquivos que você irá excluir.
Com uma versão não GNU também pode ser feito diretamente find . -name '.<*' -exec rm -i {} \;
, que também funciona com a versão GNU, apenas cerca de 3 vezes mais lenta [ 1 ] , em seguida, com -delete
.
Quando não há muitos arquivos, você pode usar find . -name '.<*' -exec rm -i {} +
, novamente mais rápido.
perl
Assumindo .<*
como chave que seleciona todos e somente os arquivos que você deseja excluir (não sem algum ginásio na string)
perl -e 'for(<'.'\<'*'>){((stat)[9]<(unlink))}'
Para apagar todos os arquivos ocultos do diretório, é suficiente perl -e 'for(<'.*'>){((stat)[9]<(unlink))}'
É mais rápido com muitos arquivos. Verifique a expressão porque não trabalho normalmente com perl.
Solução alternativa
Em geral, você pode tentar mover todos os outros arquivos em outro diretório e excluir o diretório original
mv /tmp /tmp2; mkdir tmp; mv /tmp2/* /tmp; rm tmp2
Desvantagens se algum arquivo estiver em uso ... mas há casos em que você pode usá-lo também.
Ps > não se esqueça de rsync
to /dev/null
com a opção -delete
...