Esta semana tive que fazer uma operação em dois servidores da empresa em que trabalho. Criar uma partição para substituir outra que está ficando pequena, e mover mais de 31 mil diretórios da antiga para nova.
Ao executar o comando cp ou mv, me deparei com o seguinte erro:
[usuario@localhost diretorio]$ mv * ../diretorio2 bash: /bin/mv: Argument list too long
Como próprio erro já diz, isso aconteceu porque eu tentei mover uma lista enorme de arquivos ou diretórios. Agora qual o limite máximo de arquivos ou diretórios para conseguir mover, copiar ou excluir de uma vez? Não sei… Mas encontrei uma solução, utilizando o xargs e o ls:
ls -1 source | xargs -i mv origem/{} destino/
Tem uma série de outras alternativas e combinações que podem ser trabalhadas nessas situações, como tentar filtrar por ordem alfabética, executando o comando de mover ou copiar de forma que ele atinja somente arquivos e diretórios que iniciam com uma determinada letra.
Caso você queira saber mais sobre o assunto, aqui vão os sites que me ajudaram:
- http://www.electrictoolbox.com/argument-list-too-long-linux/
0 Respostas para “Argument List Too Long – mover, copiar ou excluir arquivos no Linux”