¿Cómo puedo copiar las carpetas de imágenes de todos los directorios, es decir Case-r20-c020-t001-da1
,... Case-r20-c020-t001-dan
en una nueva ruta manteniendo los nombres de los directorios originales, por ejemplo Case-r20-c020-t001-da1
,... Case-r20-c020-t001-dan
? Digamos que tengo una estructura de directorios como la siguiente;
Case-r20-c020-t001-da1/
|____image/ <<<< This is a folder that has some pictures
|______ jpg
|______ png
|____infromation/ <<<< This is a folder.
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
Case-r20-c020-t001-da2/
|____image/
|______ jpg
|______ png
|____infromation/
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
: .
Case-r20-c020-t001-dan/ <<< n goes from 3,...20.
|____image/
|______ jpg
|______ png
|____infromation/
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
Mi intento inicial es el siguiente;
for f in Case-r20-c020-t001-da*;do (cp -r images /path/folder*);done
Entonces, quiero copiar lo anterior a un nuevo directorio y el resultado debe ser el siguiente;
Case-r20-c020-t001-da1_images/
|____image/
|______ jpg
|______ png
Case-r20-c020-t001-da2_images/
|____image/
|______ jpg
|______ png
: .
Case-r20-c020-t001-dan_images/
|____image/
|______ jpg
|______ png
Prefiero ser un comando único.
Cualquier ayuda sería apreciada.
Gracias,
Respuesta1
Esto sería más claro como un pequeño script, pero aquí está escrito como un comando. Está dividido en dos líneas para mayor claridad: elimine la barra invertida si desea unir las líneas.
for old in /old/path/Case-r20-c020-t001-da*; \
do new="/new/path/$(basename $old)_images"; mkdir -p "$new" && cp -r "$old/image" "$new/"; done