1 votos

Copia recursivamente archivos de subcarpetas y agrega extensión de archivo

Tengo la siguiente estructura de carpetas:

/[randomChars]/icons/icon_[randomNumbersAndChars]

Por ejemplo:

/awbwaidhawd/icons/icon_1241245
/awbwaidhawd/icons/icon_1552542
/awgawbvbbbb/icons/icon_1552542
/aawbbbbbbbb/icons/icon_1161266

Es necesario tomar todos los archivos de icono en forma recursiva, agregar la extensión de archivo ".png" para ellos y copiarlos a otra carpeta.

Eso significa que quiero lograr el siguiente resultado:

/icon_1241245.png
/icon_1552542.png
/icon_1552542.png
/icon_1161266.png

Para que quiero utilizar el estándar de bash de linux, scripting.

Cómo podría lograrlo?

EDITAR:

Tal vez debería añadir que hay más subcarpetas en la primera capa que no son importantes. Eso significa que hay exsists por ejemplo una carpeta como:

/awbwaidhawd/avatars/

Dichas carpetas no deben ser escaneados.

Además, en un "iconos" de la carpeta no puede haber archivos que no se nombran "icon_xxxxx". Los archivos no deben ser movido demasiado.

0voto

uzsolt Puntos 689

Tal vez esta es una solución simple:

 find /source/directory -type f -execdir cp {} `pwd`/destination/directory/\{\}.png \;
 

Por supuesto, puede filtrarlo por nombre ( --name ) si no desea copiar todos los archivos. Tenga en cuenta que si hay archivos con el mismo nombre, se sobrescribirán en /destination/directory/ .

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: