find
e xargs
são seus amigos, como sempre:
find -type f -print0 | xargs -0 rm
Ou, para o caso especial de exclusão (obrigado, Eddy_Em):
find -type f -delete
Estou trabalhando em um site para um cliente e vejo apenas uma pasta contendo mais de 1 milhão de arquivos em cache.
Eu preciso deletá-lo, mas não posso, eu tenho esta mensagem: Lista de argumentos muito longa
Eu comecei a deletar todos os arquivos começando com aaa *, bbb *, ccc * .... mas eu não quero passar minha vida ... (rm -f aaa*.string.php)
Como posso fazer isso? Obrigado!
Em vez de remover os arquivos individuais, você pode remover e recriar a própria pasta:
cd folder/..
rm -rf folder
mkdir folder
Se isso funcionar no seu cenário, provavelmente será muito mais rápido do que qualquer método baseado em enumerar e remover explicitamente os arquivos individuais.
Tente
ls | xargs -n 200 rm -f
Eventualmente removerá tudo
Você pode usar grep
para fazer correspondência de padrões se quiser excluir um subconjunto dos arquivos
Tags command-line bash rm linux