Pular para o conteúdo

Shell de Cópia

Responder tópico
  • Denunciar
  • Indicar

1. Shell de Cópia

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.

Responder tópico

2. Re: Shell de Cópia

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

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

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

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

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

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder