Supressão impossível: Lista de argumentos muito longa impossível de suprimir

Fevereiro 2017


Finalidade

Desejo suprimir arquivos (por exemplo todos os arquivos de extensão .toto) no diretório, mas o comando «rm*.toto» me reenvia :
bash: /bin/rm: Argument list too long
ou
bash: /bin/rm: Lista de argumentos muito longa 

Causas

Isto é devido à uma limitação do comando rm, que não permite gerenciar um grande número de argumentos (o joker '*' é desenvolvido pelo >Shell em uma série).

Soluções

Comando xargs

A solução consiste em enviar sucessivamente cada argumento à rm com a ajuda do comando xargs, através de uma das seguintes maneiras:

ls *.toto | xargs rm
find . -type f -name \*.toto | xargs rm

Comando find

Uma segunda solução consiste em utilizar o comando find e o parâmetro -exec :
find . -name "*.toto" -exec rm {} \;

Loup for (bash)

Uma outra alternativa consiste em executar um loop em script Shell:
for i in 'seq 0-9'digite o alfabeto; do rm $i*.toto ; done

Programa Perl

Outra solução com
perl -e 'for(</home/lami20j/*.toto>){unlink}'

Veja também

Artigo original publicado por . Tradução feita por ninha25. Última modificação: 12 de outubro de 2016 às 19:25 por ninha25.
Este documento, intitulado 'Supressão impossível: Lista de argumentos muito longa impossível de suprimir', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.