フォルダのファイル名を別の名前に変更します。

フォルダのファイル名を別の名前に変更します。

異なるフォルダに複数の.pdbファイルがあります。ディレクトリ全体を繰り返し、すべてのファイルの名前を特定の名前test.pdbとして指定するにはどうすればよいですか?

サンプル構造

file1 
 file1.pdb
 xyz.txt

file2
 file2.pdb 
 xyz.txt

file3
 file3.pdb
 xyz.txt

必須出力構造

file1
 test.pdb
 xyz.txt

file2
 test.pdb
 xyz.txt

file3
 test.pdb
 xyz.txt

今使用しているコードは次のとおりです。

for d in */ ; do
    mv *.pdb test.pdb
done

しかし、うまくいきません。

ベストアンサー1

各ディレクトリに.pdbファイルがあるとします(そうでない場合、この質問は意味がありません)。

for dir in */ ; do
    [ -f "$dir/*.pdb" ] && mv "$dir/*.pdb" "$dir/test.pdb"
done

おすすめ記事