Como copio um conjunto específico de arquivos em uma estrutura de diretório para outra?

1

Digamos que eu tenha uma estrutura de diretórios assim:

view
 |
 +--- 0001
 |
 +--- 231
 |
 +--- e2341
 |
 ... and so on

Meu problema é que eu quero copiar um conjunto de arquivos com o mesmo nome (como file_001.jpg) para outro local que tenha uma estrutura de diretório idêntica, ou seja, é um espelho. Existe uma maneira de copiar arquivos de um padrão de nome específico de uma estrutura de diretórios para outra?

Eu tentei algo ao longo das linhas com…

cp -R */file_001.jpg /destination_folder

… mas tudo o que recebo é o seguinte erro

cp: cannot stat 'file_001.jpg': No such file or directory

Eu acho que tenho que canalizar os nomes dos arquivos de alguma forma, alguém tem alguma boa idéia de como fazer isso?

    
por Spoike 21.12.2009 / 09:32

1 resposta

4

Você pode usar o find combinado com o recurso de passagem do cpio para isso. Algo parecido com isto:

find old_dir -name "file_001.jpg" -print | cpio -pd new_dir

O sinalizador -p no cpio aciona o modo de passagem, que copia arquivos de sua localização original para new_dir . O -d flag cria todos os diretórios necessários, portanto, você terá a mesma hierarquia sob new_dir do que tinha sob old_dir (pelo menos, até onde os diretórios que contêm file_001.jpg estão relacionados).

    
por 21.12.2009 / 10:04