Fórum Ubuntu Linux - PT
Suporte Técnico => Servidores => Tópico iniciado por: _ubuntu_ em 10 de Janeiro de 2014, 13:04
-
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!!!
-
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.
-
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
ls > 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
cp -r $(cat lista) hd2
-
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
ls > 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
cp -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..
-
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 :)
-
Resolveu como? Compartilha com a gente..
-
Resolveu como? Compartilha com a gente..
Cara a solução é simples.. é como o Rockwave acima ensina a fazer!!!
-
O comando rsync copia tanto entre destinos locais como de uma máquina para a outra, e tem uma opção de exclusão.
-
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
ls > 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
cp -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 :)