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 ...

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.