Lista de argumentos longa demais com apenas 5000 arquivos [duplicados]

0

Eu tenho uma pasta com arquivos 5000 que eu quero copiar em outro lugar.

Quando faço cp ../folder* . , recebo o seguinte erro:

-bash: /bin/cp: Argument list too long

No entanto, getconf ARG_MAX retorna 262144 .

$ echo ../folder* |wc
1 5015 69144

Isso é normal? Eu consegui copiar todos esses arquivos antes.

    
por sodiumnitrate 10.08.2015 / 18:43

1 resposta

4

Use um programa para iterar os argumentos:

por exemplo. find .. -type d -iname '*/folder*' -exec cp -a {} . \;

de iterar manualmente com um loop, como:

for myDir in ../folder* ; do cp -a "$myDir" . ; done

Existem muitas outras maneiras, mas uma das opções acima deve fazer o truque para você. (O exemplo de loop for mais lento)

    
por 10.08.2015 / 19:52

Tags