Remover muitos arquivos de uma pasta

Remover muitos arquivos de uma pasta

Eu tenho uma pasta com 137.795 arquivos. Eu preciso deletar todos eles. Quando eu corro rm *eu consigo -bash: /bin/rm: Argument list too long. Como faço para superar esse erro?

Responder1

Como posso ver, você não precisa remover seu dir , apenas os arquivos dentro dele. Então você pode recriá-lo

rm -r /path/to/dir && mkdir /path/to/dir

ou até mesmo excluir apenas os arquivos dentro

find /path/to/dir -type f -delete

afair primeiro funciona mais rápido.

Atualização. Observe que essa forma findpode não ser ideal do ponto de vista do consumo de espaço, pois o tamanho do diretório será reduzido somente após fsck.Detalhes.

Responder2

Solução alternativa nº 1:

find /path/to/dir -delete

Solução alternativa nº 2:

rm a*;

rm b*;

rm c*;

etc

Responder3

Usar findé provavelmente a melhor aposta. Alguns dos problemas com as outras respostas são não excluir tudo dentro do diretório ou excluir o próprio diretório. Você pode usar lswith xargs, se não houver caracteres especiais, ou findcom determinadas opções.

ls -1 | xargs rm -r

ou

find . -depth -path ./.* -prune -o -not -name . -delete

Isso ignorará qualquer coisa no diretório atual começando com .( -prune) e removerá qualquer outro arquivo ou diretório, desde que não seja o diretório superior ( .). Ele -depthexaminará primeiro os diretórios, o que evitará um erro de 'diretório não vazio'. Se o -notargumento não estiver disponível em seu sistema, use !.

informação relacionada