find + cp [RESOLVIDO]

1. find + cp [RESOLVIDO]

Diogo Ferreira
dontuba

(usa XUbuntu)

Enviado em 22/03/2010 - 18:41h

Hola pessol, preciso de um apoio de vocês. Preciso localizar todos os pacotes .deb (find /*.deb) e ao mesmo tempo copiar eles para dentro de uma determinada pasta (cp /media/local_1/repositorio_local), como fica a sintaxe pois o cp usara a saida de dados do find? pesquisei na web mais não estou conseguindo me expressar por esse motivo não recebi respostas da busca que possam ser utilizadas. Fico no aguardo, grande abraço a todos e VIVA O LINUX, VIVA A LIBERDADE!


  


2. Cara consegui...

Thiago Baldim
TRBaldim

(usa Ubuntu)

Enviado em 22/03/2010 - 21:27h

Bom, seguinte é relativamente simples... Vá para o diretório raiz "/", lá execute este comando:
find /* -name *.deb >> /home/(seu usuário)/rep.txt
Esse comando vc está mandando todos os endereços dos arquivos .deb para dentro de um arquivo de texto.
Em seguida execute o comando:
cp -n `cat /home/(seu usuário)/rep.txt` /media/local_1/repositorio_local
Não se esqueça que na parte do cat eu estou usando crase " ` " e não outra coisa, para poder copiar o conteudo. Talvez demore muito a copia dependendo da quantidade de arquivos. No meu caso havia 593 arquivos demorou por volta de 2 min.
Ao final use o comando:
rm /home/(seu usuário)/rep.txt
Para excluir o arquivo.

Isso funciona eu garanto qualquer problema, só avisar aqui


3. Re: find + cp [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 23/03/2010 - 01:09h

Tente:

find /diretório/pesquisar -name *.deb -type f -exec cp {} /path/destino \;



4. Re: find + cp [RESOLVIDO]

Pedro Pereira
pogo

(usa Fedora)

Enviado em 23/03/2010 - 09:01h

Esse comando faz exatamente isso:

find / -iname *.deb -exec cp '{}' /media/local_1/repositorio_local \;

[]'s

Pedro Pereira
www.pedropereira.net


5. Re: find + cp [RESOLVIDO]

Diogo Ferreira
dontuba

(usa XUbuntu)

Enviado em 23/03/2010 - 14:33h

Po pessoal muito obrigado, obrigado mesmo era isso que eu estava procurando, porem é o seguinte alguem sabe me explicar ou algum material para que eu possa entender a sintaxe dessa linha, porque funcionou tudo blz, mas sabe aquela sensação de tipo fiz e não entendi (Aff que é horrivel), queria entender o porque ex: exec, type -f, o tal {}, não entendi esses parametros, se possivel agradeço muito.

VIVA O LINUX, VIVA A LIBERDADE!


6. Re: find + cp [RESOLVIDO]

Diogo Ferreira
dontuba

(usa XUbuntu)

Enviado em 23/03/2010 - 14:36h

TRBaldim muito obrigado, foi extremamente util com a sua ideia do txt pude gerar com backup dos arquivos, porem somente com seus nomes, desta maneira evito disperdicio de espaço e tenho um controle do que foi baixado de pacotes para a maquina, vlw brother!

VIVA O LINUX, VIVA A LIBERDADE!



7. Re: find + cp [RESOLVIDO]

Pedro Pereira
pogo

(usa Fedora)

Enviado em 23/03/2010 - 16:31h

Segue a explicação dos parâmetros:

find / -iname *.deb -exec cp '{}' /media/local_1/repositorio_local \;

/ -> Local onde a busca será feita (poderia ser /home/usuario, por exemplo);
-iname *.deb -> procura *.deb nos nomes dos arquivos, sem considerar diferenças entre maiúsculas e minúsculas;
-exec -> diz para o find que você quer executar o comando que segue essa opção em todos os resultados encontrados;
'{}' -> representa um item que casou a procura do find;
/media/local_1/repositorio_local -> parâmetro do cp que define o diretório de destino, para onde os arquivos serão copiados;
\; -> quando os itens acabam, o find retorna um ";". Esse parâmetro diz para o find terminar sua execução quando receber um ";". O \ escapa o ; para que o shell não o interprete.

Espero que esclareça um pouco :) No man do find você encontra todas as milhares de opções do find. Ele consegue fazer praticamente tudo o que você precisar heheh

[]'s

Pedro Pereira
www.pedropereira.net


8. Re: find + cp [RESOLVIDO]

Diogo Ferreira
dontuba

(usa XUbuntu)

Enviado em 23/03/2010 - 18:21h

Brother show de bola era bem isso que eu queria, exclareceu minhas duvidas, parabens muito clara a explicação.


9. Procurar pastas ao invés de arquivos

Diego
ntdesign

(usa CentOS)

Enviado em 10/03/2016 - 16:09h

Eu preciso fazer exatamente o contrário.
Preciso que o find busque uma estrutura de pastas comuns no servidor, o que muda é o nome de usuário: Exemplo: /usuario1/pasta100

Então quero que todos os caminhos que encontrarem o diretório pasta100 recebam uma cópia do arquivo especifico que está em outro local do mesmo servidor com o comando cp. Isso é possível?

Não estou conseguindo bolar uma forma pra isso, se puderem me ajudar, agradeço muito!


10. Re: find + cp [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/03/2016 - 16:46h

ntdesign escreveu:
Eu preciso fazer exatamente o contrário.
Preciso que o find busque uma estrutura de pastas comuns no servidor, o que muda é o nome de usuário: Exemplo: /usuario1/pasta100
Então quero que todos os caminhos que encontrarem o diretório pasta100 recebam uma cópia do arquivo especifico que está em outro local do mesmo servidor com o comando cp. Isso é possível?
Não estou conseguindo bolar uma forma pra isso, se puderem me ajudar, agradeço muito!

--------------------------------------------------------------------------
Boa tarde, ntdesign.
O que você quer é restaurar o backup do APT?

No aguardo
Marcelo Oliver



11. Re: find + cp [RESOLVIDO]

Diego
ntdesign

(usa CentOS)

Enviado em 10/03/2016 - 20:11h

Não, é somente copiar uns arquivos diariamente para usuários que usam o mesmo servidor de hospedagem. É sempre o mesmo conteúdo para todos, por isso eu pensei em uma forma de copiar sempre para todos os usuários de uma vez só






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts