Bash Shell 脚本 - 如何遍历目录以及复制和重命名文件?

Cyp*_*her 4 bash shell shell-script

我有一个目录设置如下:

/hosted/partner1/logo.png
/hosted/partner2/logo.png
/hosted/partner3/logo.png
/hosted/partner4/logo.png
/hosted/partner5/logo.png
..etc.
Run Code Online (Sandbox Code Playgroud)

我想编写一个脚本,可以使用不同的文件名将这些文件复制到不同的位置,如下所示:

/partners/partner1.png
/partners/partner2.png
/partners/partner3.png
..etc.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我对 shell 脚本不太熟悉,而且有很多文件需要迁移到单个目录...

Den*_*son 7

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

或者

find /hosted -maxdepth 1 -name "partner*" -type d | while read -r dir
do
    cp "${dir}/logo.png" "/partners/${dir##*/}.png"
done
Run Code Online (Sandbox Code Playgroud)