Shell de Cópia

1. Shell de Cópia

Claudemir Santos
tech14107

(usa Red Hat)

Enviado em 17/10/2010 - 01:11h

Buenas pessoal.

preciso de ajuda com um script.
Tenho um diretório mapeado num RED HAT 5 (uma pasta compartilhada que esta no Windows), nesta pasta tenho uma série de diretório e sub-diretórios, e dentro destes uma série de arquivos com diversas extensões.

O que preciso é copiar somente arquivos com determinada extensao, porem mantendo toda a estrutura de diretórios, sou seja, manter a estrutura original mas somente os arquivos com a extensao que eu informa.

se puderem me ajudar eu agradeço.


  


2. Re: Shell de Cópia

Guilherme Domingues de Oliveira
korvoman

(usa Debian)

Enviado em 18/10/2010 - 00:12h

O seu script tem como base tar, rsync ?

Pelo rsync e tar conheço as opções exclude. Sugiro dar uma pesquisada na documentação dos mesmos : man tar e man rsync.

Link:
http://sial.org/howto/rsync/





3. Re: Shell de Cópia

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 18/10/2010 - 13:37h

poste ai o q vc ja fez, e os erros que estao dando


4. Re: Shell de Cópia

Claudemir Santos
tech14107

(usa Red Hat)

Enviado em 18/10/2010 - 22:12h

Olha pessoal eu fiz assim , mas nao adianta ele copia todo o conteudo, ele traz tudo.

find /mnt/arq/ -name "*.pyz" -exec cp -R --parent "{}" /hd1/compila/ \;

o que eu queria é tipo assim

conteudo do /mnt/arq/ tem as pastas
A
B
C
D
e dentro destas pode haver subdiretórios os arquivos.
o que eu queria é que por exempo existisseo seguinte
/mnt/arq/A/AAA1/aaa.pyz
/mnt/arq/A/AAA2/aab.pyz
/mnt/arq/b/b.pyz
/mnt/arq/c/123/xxx.xyz
/mnt/arq/c/123/xxx.yda

Ao dar o comando e passe por exemplo que quero *.pyz ele fizesse a copia para o /dh1/compila ja criando a estrutura ou seja ficaria assim:

/hd1/compila/A/AAA1/aaa.pyz
/hd1/compila/A/AAA2/aab.pyz
/hd1/compila/b/b.pyz






5. Re: Shell de Cópia

Claudemir Santos
tech14107

(usa Red Hat)

Enviado em 18/10/2010 - 22:25h

Opa, olha só galera pesquisando e juntando um monte de script eu consegui progredir.

find /xxx/arq/ -name "*.pyz" |
while read arquivo
do
echo $arquivo
cp -R $arquivo /hd1/compila
done

ele so copiou as extensoes .pyz so que nao criou a arvore de diretórios, colocou tudo no /hd1/compila


ta quase.


6. Re: Shell de Cópia

Guilherme Domingues de Oliveira
korvoman

(usa Debian)

Enviado em 19/10/2010 - 09:07h

Bom dia, fiz um teste com rsync.
Segue o exemplo:

rsync -avz --include "*/" --include "*.mp3" --exclude "*" /home/guilherme/musicas /tmp/teste

Este é executado de modo recursivo (--include "*/") e permite a cópia de arquivos de extensão mp3 (--include "*.mp3").
Em continuidade é excluso qualquer outro tipo de extensão pela tag (--exclude "*").

fonte:
http://maururu.net/2007/rsync-only-files-matching-pattern/comment-page-1/


7. find + cpio

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 19/10/2010 - 10:02h

Você pode tentar assim também:

find diretório/ -type f -name "*.pyz" -print | cpio -pdv /diretório/de/destino







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts