it-swarm-ja.com

Bashシェルスクリプト-ディレクトリを反復処理し、ファイルをコピーして名前を変更する方法は?

私は次のようにディレクトリを設定しています:

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

次のように、これらのファイルを別の場所に別のファイル名でコピーできるスクリプトを作成したいと思います。

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

何か案は?私はシェルスクリプトがあまり得意ではなく、単一のディレクトリに移行する必要のあるファイルがたくさんあります...

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

または

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