Bash Shell Scripting - Como fazer a iteração através de diretórios e copiar e renomear arquivos?

4

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

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

Eu 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 shell scripts e há muitos arquivos que eu preciso migrar para um único diretório ...

    
por Cypher 17.05.2010 / 21:47

1 resposta

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
    
por 17.05.2010 / 22:19