Bash Shell Scripting - Como iterar através de diretórios, copiar e renomear arquivos?

4

Eu tenho uma configuração de diretório da seguinte maneira:

/hosted/partner1/logo.png
/hosted/partner2/logo.png
/hosted/partner3/logo.png
/hosted/partner4/logo.png
/hosted/partner5/logo.png
..etc.

Quero escrever um script que possa COPIAR esses arquivos para um local diferente, com um nome de arquivo diferente, como este:

/partners/partner1.png
/partners/partner2.png
/partners/partner3.png
..etc.

Alguma ideia? Eu não sou tão bom com scripts de shell e há muitos arquivos que preciso migrar para um único diretório ...

Cifra
fonte

Respostas:

7
find /hosted -maxdepth 1 -name "partner*" -type d | while read -r dir
do
    cp "${dir}/logo.png" "/partners/$(basename ${dir}).png"
done

Ou

find /hosted -maxdepth 1 -name "partner*" -type d | while read -r dir
do
    cp "${dir}/logo.png" "/partners/${dir##*/}.png"
done
Dennis Williamson
fonte