Você provavelmente veio parar aqui por que usou um comando semelhante a este:
cp -r /origem/*.mp3 /destino/
e não funcionou.
Há várias formas de fazer isto, com arquivos de qualquer extensão (*.mp3, *.jpg, *.txt etc.). Como você já sabe, cp -r
não é uma delas.
Como copiar arquivos recursivamente com os comandos find e cpio
Estes comandos dão conta do recado. O primeiro encontra os arquivos do tipo desejado, recursivamente. O outro faz a cópia, mantendo a estrutura de diretórios.
Adapte a linha de comando, que segue, para que ela atenda às suas necessidades.
$ find /caminho/de/origem/ -name ‘*.mp3’ | cpio -pdm /caminho/de/destino/
LEIA MAIS
Veja o que as opções ‘-pdm’ fazem:
- -p habilita a operação de cópia recursiva
- -d cria a estrutura de diretórios no destino, de acordo com a original
- -m preserva as datas de modificação dos arquivos
3 replies on “Como copiar arquivos recursivamente no linux (no terminal)”
Bom dia, Elias,
Primeiramente, parabéns pelo blog, MUITO BOM!!!!!
Elias, estou quebrando um pouco a cabeça para fazer um script que faça a cópia de arquivos .txt criados a cada 10min e pelo que vi acredito que eu possa usar seus comandos…só estou preocupado como poderei fazer isso copiando apenas os arquivos mais recentes e não os já copiados, o amigo poderia me orientar quanto a isso?
Super abraço e parabéns!
André
Eu estou procurando exatamente o contrário mas eu não acho um jeito pra isso.
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 (*/pasta100) recebam uma cópia de um arquivo especifico que está em outro local do mesmo servidor com o comando cp. Isso é possível?
Estou pesquisando pacas mas só encontro o contrário.
Talvez o comando rsync seja mais útil para você.