duvida sobre comando cp ou mv

Iniciado por _ubuntu_, 10 de Janeiro de 2014, 13:04

tópico anterior - próximo tópico

_ubuntu_

Bom dia, boa tarde ou boa noite dependendo do horario que esteja lendo esse post.


Bem tenho uma duvida ja faz alguns anos, e hoje precisei fazer uma coisa e novamente ajudaria muito se eu soubesse como..

vou explicar. digamos que eu tenho um HD1 e HD2
quero copiar tudo do HD1 para o HD2
até ai beleza...
só que digamos que no HD1 tem os seguintes arquivos
HD1>foto01.jpg
HD1>foto02.jpg
HD1>foto011.jpg
HD1>foto018.jpg
HD1>foto017.jpg
HD1>foto01.9jpg
HD1>foto0196.jpg
HD1>foto01465.jpg
HD1>foto01456.jpg
HD1>foto0146.jpg
HD1>foto014.jpg
HD1>pasta01
HD1>pasta02
HD1>pasta03
HD1>pasta04
e mais varios arquivos aleatorios... digamos mais 500 arquivos e + 500 pastas... certo ??
dai digamos que eu precise copiar todos os arquivos exceto a pasta04 e a pasta01


entao eu uso o seguinte comando...

cp -v HD1/* HD2/

até ai beleza.. o problema é que copia até as pastas que nao quero..e essa pasta01 e pasta04 tem 500GB de arquivos 'por exemplo'...



o que eu queria sabe é se existe algo para colocar exceção comando cp.
exemplo:

cp -v HD1/* HD2/ -xxx HD1/pasta01 HD1/pasta02

onde -xxx é o comando de exceção que eu nao sei como utilizar!!!

jeflui

#1
Nesse seu caso pode ser feito assim:
cp -v HD1/foto* HD2/

E como você não utilizou a opção -r para copiar de forma recursiva o seu comando acima não vai copiar os diretórios
que estão em HD1 para HD2.

Rockwave

Alem da solução dada pelo Jeflui, você poderia fazer o seguinte:
listar os arquivos que estão no hd1 e salvar a saida num arquivo

Citarls > lista    OU  se você quiser aplicar algum filtro (tipo nome do arquivo) ls | grep filtro > lista

Ai você edita essa lista tirando os diretorios/arquivos que você não quer e depois roda um
Citarcp -r $(cat lista) hd2

_ubuntu_

Citação de: Rockwave online 10 de Janeiro de 2014, 14:11
Alem da solução dada pelo Jeflui, você poderia fazer o seguinte:
listar os arquivos que estão no hd1 e salvar a saida num arquivo

Citarls > lista    OU  se você quiser aplicar algum filtro (tipo nome do arquivo) ls | grep filtro > lista

Ai você edita essa lista tirando os diretorios/arquivos que você não quer e depois roda um
Citarcp -r $(cat lista) hd2


Cara, venho por meio deste, te agradecer e dizer que sua solução é muito inteligente e muito eficiente e pratico de se aplicar, muito obrigado cara...ja faz anos que nao sei como resolver isso, e ja tentei em diversos foruns, ja o amigo de cima, nao tenho certeza de que funciona, vou testar depois posto o resultado...


mas a sua solução foi perfeita... Muito obrigado amigo..

_ubuntu_

Citação de: jeflui online 10 de Janeiro de 2014, 14:04
Nesse seu caso pode ser feito assim:
cp -v HD1/foto* HD2/

E como você não utilizou a opção -r para copiar de forma recursiva o seu comando acima não vai copiar os diretórios
que estão em HD1 para HD2.


obrigado pela ajuda amigo, mas creio que entendeu errado, eu dei só um exemplo dos nomes das pasta..por isso nao da para usar pasta*, por que as pastas tem diversos nomes diferentes..mas mesmo assim obrigado pela ajuda!!!! ja esta resolvido :)

g4p

Resolveu como? Compartilha com a gente..

_ubuntu_

Citação de: g4p online 10 de Janeiro de 2014, 18:01
Resolveu como? Compartilha com a gente..


Cara a solução é simples.. é como o Rockwave acima ensina a fazer!!!

zekkerj

O comando rsync copia tanto entre destinos locais como de uma máquina para a outra, e tem uma opção de exclusão.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Rockwave

Citação de: _ubuntu_ online 10 de Janeiro de 2014, 17:35
Citação de: Rockwave online 10 de Janeiro de 2014, 14:11
Alem da solução dada pelo Jeflui, você poderia fazer o seguinte:
listar os arquivos que estão no hd1 e salvar a saida num arquivo

Citarls > lista    OU  se você quiser aplicar algum filtro (tipo nome do arquivo) ls | grep filtro > lista

Ai você edita essa lista tirando os diretorios/arquivos que você não quer e depois roda um
Citarcp -r $(cat lista) hd2


Cara, venho por meio deste, te agradecer e dizer que sua solução é muito inteligente e muito eficiente e pratico de se aplicar, muito obrigado cara...ja faz anos que nao sei como resolver isso, e ja tentei em diversos foruns, ja o amigo de cima, nao tenho certeza de que funciona, vou testar depois posto o resultado...


mas a sua solução foi perfeita... Muito obrigado amigo..
Que isso cara... fico feliz em ter ajudado  :)