Como resolver o `/bin/rm: Erro demasiado longo da lista do argumento'

por Sukrit Dhandhania em Fevereiro 18, 2009

Linux

root@dwarf /var/spool/clientmqueue # spam-* do rm
/bin/rm: Lista do argumento demasiado longa.

São-lhe vistos sempre este erro em Linux quando você tem limas demais em um diretório e incapaz de suprimi-las com um simples rm - rf *? Eu funcionei neste problema um número de vezes. Após ter feito um pouco de pesquisa em linha eu vim através de uma solução pura trabalhar em torno desta edição.

achado. - nome “spam-*” | rm dos xargs

No exemplo acima o comando suprimirá forcefully todas as limas no diretório atual que comece com Spam. Você pode substituir spam-* com qualquer coisa você gosta. Você pode também substitui-lo com apenas o a * se você quiser remover todas as limas no dobrador.

achado. - nome “*” | rm dos xargs

Nós cobrimos Achado de Linux comando no detalhe grande mais cedo. Xargs é o comando de Linux que faz passando um número de argumentos a um comando mais fácil.

Se este borne lhe ajudasse, eu seria extremamente grato se você poderia fazer exame de 3 minutos (eu cronometrei-o) para terminar este exame. Se você incorporar seu email address no fim do exame, você estará inscrito em uma competição para ganhar um certificado de presente de $25 USD Amazon. Você não necessita incorporar seu nome ou email address (embora você não será inscrito na competição) para terminar o exame. Nenhuma informação pessoalmente identifiable é recolhida. Se você opt incorporar a competição, seu email address não seja vendido ou usado para qualquer tipo de uma comunicação, à excepção de notificá-lo se você ganhar a competição. Depois que a competição termina todos os endereços do email estarão suprimidos. Agradecimentos muito muito adiantado!!
Bornes relacionados:
  • Tecnologia e Lifestyle
  • Características de sistema da recuperação de Windows XP
  • Como resolver o erro 800B0100 do Update de Windows Vista
  • Como monitorar sua máquina de Linux com netstat
  • A vista geral e 10 de Pownce convidam para leitores de Simplehelp
  • Comece tutorials simples da ajuda justos como este em seu inbox do email diário - para livre! Incorpore apenas seu email address abaixo:

    Você pode sempre opt fora desta subscrição do email em em qualquer altura que.

    { 2 comments… read them below or add one }

    1 Ale? Friedl 02.19.09 at 7:16 am

    Safe variant for filenames with spaces, new lines and other whitespace characters:
    find . -name ‘*’ -print0 | xargs -o rm

    2 MikeT 02.19.09 at 6:30 pm

    Good catch using the print0 option, that’s an important one.

    Most find commands do not require the “-name” predicate. What’s usually more important is to make sure you’re deleting *files* and not something else you might not have intended. For this use “-type f” inplace of the “-name” option….

    find . -type f -print0 | xargs -0 /bin/rm

    A) Use the full path to the ‘rm’ command so your aliases don’t muck with things.
    B) Check your xargs command, you can sometimes, if needed, tell it to use one “result” at a time, such as (if you didn’t use print0 but regular print) “-l1″

    Leave a Comment

    You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>