質問: 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. 何か案は?私はシェルスクリプトがあまり得意ではなく、単一のディレクトリに移行する必要のあるファイルがたくさんあります...
回答: 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