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

Dezembro 2016


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 :
Este documento, intitulado « Supressão impossível: Lista de argumentos muito longa impossível de suprimir »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.