+ Responder ao Tópico



  1. #1
    whinston
    Visitante

    Padrão -bash: /bin/rm: Argument list too long

    Alguém já pego algo parecido ?

    rm tmp/* -rf
    -bash: /bin/rm: Argument list too long


    Faz tempo que eu to pra perguntar e esqueço..
    Eu tenho que apagar o diretório e depois criar outro, pq apagar só o conteúdo num vai não.

  2. #2

    Padrão -bash: /bin/rm: Argument list too long

    estranho isso...
    mas tenta com
    rm -rf tmp/*
    ele deve ta se perdendo na ordem das opcoes

  3. #3
    rmars
    Visitante

    Padrão -bash: /bin/rm: Argument list too long

    Tive esse problema no OpenBSD, se refere a quantidade de arquivos que tu tens dentro do /tmp, sao muitos arquivos q sao passados como parametro pro comando rm, por isso ele reporta isso.

    So consegui resolver excluindo aos poucos, questao de 4 em 4 mil arquivos

    boa sorte


  4. #4
    ewerton_shadow
    Visitante

    Padrão -bash: /bin/rm: Argument list too long

    O problema é que a lista de arquivos é muito grande para ser removida de uma vez pelo comando rm, então vc pode fazer o seguinte, listar com o comando ls e remover 1 a 1 com o comando rm. fica assim:

    ls -1 -Q | xargs rm -f

    ls -1 = 1 arquivo por linha, -Q coloca "" entre o nome do arquivo e o rm -f apaga o arquivo. Esse comando funciona para qualquer quantidade de arquivos dentro do diretório.

    É isso, espero que funcione

    Abs

  5. #5
    hugolf
    Visitante

    Padrão Solução para remover inúmeros arquivos de uma só vez!

    Citação Postado originalmente por ewerton_shadow
    O problema é que a lista de arquivos é muito grande para ser removida de uma vez pelo comando rm, então vc pode fazer o seguinte, listar com o comando ls e remover 1 a 1 com o comando rm. fica assim:

    ls -1 -Q | xargs rm -f

    ls -1 = 1 arquivo por linha, -Q coloca "" entre o nome do arquivo e o rm -f apaga o arquivo. Esse comando funciona para qualquer quantidade de arquivos dentro do diretório.

    É isso, espero que funcione

    Abs


    Cara,

    Eu sei que o tópico é antigo e que provavelmente você já resolveu o problema, mas mesmo assim resolvi postar aqui para ver se ajudava.

    Quando aparece a mensagem bash: /bin/rm: Argument list too long quando tentamos remover o conteúdo de uma determinada pasta. Isto é porque foi atingido o limite do comando rm para remover.

    Resolvi o problema da seguinte forma:

    Crie um arquivo com a lista dos arquivos que você deseja apagar, no meu caso eu criei um arquivo chamado:lista.txt e coloquei no /tmp, este arquivo continha o conteúdo da pasta /var/amavis/tmp.

    O conteúdo dele ficou assim; pasta por pasta, uma debaixo da outra:

    amavis-20051221T232339-14966
    amavis-20051221T232340-14925
    amavis-20051221T232340-14966
    amavis-20051221T232341-14925
    amavis-20051221T232342-14966
    amavis-20051221T232345-14993
    amavis-20051221T232350-14966
    amavis-20051221T232351-14993
    amavis-20051222T112049-23312
    amavis-20051222T112049-23313
    .
    .
    .
    Ai criei um outro arquivo dentro da mesma pasta /tmp chamado apagatudo.sh, dê o nome que quiser.

    Dentro deste arquivo, coloquei o seguinte texto:

    #!/bin/bash
    #
    # by Hugo Leonardo
    # Linux Registred User # 341228
    #

    clear
    apagar="lista.txt"

    for apagar in `cat $apagar`;
    do
    rm -rf /var/amavis/tmp/$apagar
    echo "Pasta $apagar removida com sucesso!"
    done

    #
    #
    Ai é só substituir o /var/amavis/tmp pela pasta que contêm os arquivos que deseja excluir.

    Espero ter ajudado.
    Qualquer dúvida favor entrar em contato.


    Hugo Leonardo de Freitas
    hugolf (a) gmail.com