¿Cómo copio un conjunto específico de archivos en una estructura de directorio a otra?

1

Digamos que tengo una estructura de directorio algo así:

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

Mi problema es que quiero copiar un conjunto de archivos que tienen el mismo nombre (como file_001.jpg) a otro lugar que tenga una estructura de directorio idéntica, es decir, es un espejo. ¿Hay alguna manera de copiar archivos de un patrón de nombre específico de una estructura de directorio a otra?

Intenté algo en la línea con ...

cp -R */file_001.jpg /destination_folder

... pero todo lo que obtengo es el siguiente error

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

Supongo que tengo que poner los nombres de archivo de alguna manera, ¿alguien tiene alguna buena idea sobre cómo hacer esto?

Spoike
fuente

Respuestas:

4

Puede usar find combinado con la función de paso de cpio para eso. Algo como esto:

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

El -pindicador en cpio activa el modo de transferencia, que efectivamente solo copia archivos de su ubicación original new_dir. El -dindicador crea todos los directorios necesarios, por lo que tendrá la misma jerarquía debajo de la new_dirque tenía debajo old_dir(al menos, en lo que respecta a los directorios que contienen file_001.jpg).

goldPseudo
fuente