ディレクトリ名に基づいてディレクトリのファイル名を変更する

ディレクトリ名に基づいてディレクトリのファイル名を変更する

Linux、SSHのディレクトリ名に基づいて複数のファイルの名前を変更しようとしています。

というディレクトリがありますXYZ01smith。という名前のファイルが4つありますsmith_5*。このファイルにプレフィックスを追加する必要がありますXYZ01
しかし、、次のディレクトリはですXYZ02perry。名前は4つです。このファイルにプレフィックスを追加するperry_3*必要があります。XYZ02

各ディレクトリに対してこれを行うループがあります。

for i in smith_5*;
    do mv ${i} XYZ01${i};
done 

XYZ01nameただし、50のディレクトリ(〜)があるため、XYZ50name1つのスクリプトを使用して50のすべてのディレクトリを処理できることをお勧めします。これが可能でなければならないと確信していますが、実装方法がわかりません。

ベストアンサー1

そしてzsh

autoload zmv # best in ~/.zshrc
zmv '(XYZ??)(*)/(*)' '$1$2/$1$3'

おすすめ記事