COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

1. COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

JONATA PAULINO DA COSTA
jonatapaulino

(usa Outra)

Enviado em 07/09/2016 - 21:48h

Gostaria de copiar 25.000 arquivos jpg de um diretório para outro de uma vez só.
Como faço?


  


2. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Perfil removido
removido

(usa Nenhuma)

Enviado em 07/09/2016 - 21:58h

Pesquise pelo comando cp.
--
Linux Counter: #596371


3. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 07/09/2016 - 22:00h

http://lmgtfy.com/?q=cp+comando


4. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 07/09/2016 - 22:44h

jonatapaulino escreveu:

Gostaria de copiar 25.000 arquivos jpg de um diretório para outro de uma vez só.
Como faço?


Boa noite jonatapaulino.
Esse comando é muito complexo . . .
Tive que ler o "MAN" e o "HELP" várias vezes . . . .
ESTANDO "FORA" DO DIR_ORIGEM
cp DIR_ORIGEM/*.jpg DIR_DESTINO/ 

ESTANDO "DENTRO" DO DIR_ORIGEM
cp *.jpg DIR_DESTINO/ 


att.:
Marcelo Oliver


5. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Fabiano
fpires

(usa Debian)

Enviado em 08/09/2016 - 11:43h

Nenhuma das respostas acima resolve o problema, por uma simples razão:

A linha de comando tem uma limitação na quantidade de parâmetros que podem ser passados. Esse limite é de 10240 parâmetros. Assim, ao executar
cp /origem/*.jpg /destino  

o bash iria substituir o *.jpg pelo nome de 25.000 arquivos, gerando 25.001 parâmetros (o nome dos arquivos de origem + o diretório de destino) e causando erro. Esse erro não consta na página de manual do cp.

A solução para isso seria executar a cópia através do find:
find /origem -name '*.jpg' -exec cp {} /destino \; 

Isso iria executar o comando "cp" 25.000 vezes, com 2 parâmetros em cada execução (origem e destino), ao invés de tentar executar com 25.000 parâmetros.


6. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Wellington
wellington_r

(usa Debian)

Enviado em 08/09/2016 - 12:01h

Essa do limite de parâmetros é nova pra mim. Vivendo e aprendendo.
Onde posso consultar essa informação?
--------------------------------------------------------------------------------------------------------------------------------------
admin@server:~$ whatis life
life: nothing appropriate



7. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/09/2016 - 12:06h

Eu já vi aqui no fórum alguém com uma resposta ao problema:

for i in *.jpg
do
cp "$i" caminho_diretorio_destino
done


Não sabia deste limite de 10240.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



8. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Fabiano
fpires

(usa Debian)

Enviado em 08/09/2016 - 18:49h

wellington_r escreveu:

Essa do limite de parâmetros é nova pra mim. Vivendo e aprendendo.
Onde posso consultar essa informação?
--------------------------------------------------------------------------------------------------------------------------------------
admin@server:~$ whatis life
life: nothing appropriate


Achei uma referência bem completa aqui (inclusive com os valores de diversas versões do Kernel e de outros sistemas operacionais):
http://www.in-ulm.de/~mascheck/various/argmax/

Também vi referências dizendo sobre o limite ser com base no comprimento da linha de comando (e não na quantidade de parâmetros em si).


9. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 08/09/2016 - 19:16h

Modos para fazer isso não faltam:
find /diretório -name \*.jpg -exec cp {} /destino \; 




10. Re: COPIAR VÁRIOS ARQUIVOS DE UMA VEZ PARA UM OUTRO DIRETÓRIO

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/09/2016 - 20:45h

fpires escreveu:
Nenhuma das respostas acima resolve o problema, por uma simples razão:
A linha de comando tem uma limitação na quantidade de parâmetros que podem ser passados. Esse limite é de 10240 parâmetros. Assim, ao executar
cp /origem/*.jpg /destino  

o bash iria substituir o *.jpg pelo nome de 25.000 arquivos, gerando 25.001 parâmetros (o nome dos arquivos de origem + o diretório de destino) e causando erro. Esse erro não consta na página de manual do cp.

A solução para isso seria executar a cópia através do find:
find /origem -name '*.jpg' -exec cp {} /destino \; 

Isso iria executar o comando "cp" 25.000 vezes, com 2 parâmetros em cada execução (origem e destino), ao invés de tentar executar com 25.000 parâmetros.


Boa noite "fpires".
Para constatar a sua afirmação, fiz o teste . . .
Criei 25000 arquivos na pasta Documentos e executei o comando,
cp Documentos/*.txt Downloads/ 

O mesmo, foi executado sem qualquer erro . . .
ls -l Documentos/*.txt|wc -l
25000

ls -l Downloads/*.txt|wc -l
25000


Att.:
Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts