複数のディレクトリにある複数のファイルの名前を、ディレクトリ名に1を加えた名前に変更します。

複数のディレクトリにある複数のファイルの名前を、ディレクトリ名に1を加えた名前に変更します。

私は複数のファイルの名前をそのディレクトリに変更しようとしました。

スペースの有無にかかわらず、いくつかのディレクトリがあります/The Dark Tower

ファイル名にスペースが含まれている場合と含まないヘッダーがいくつかあります。

/The Dark Tower/TDT feature.mov
/The Dark Tower/Main Trailer.mov 
/The Dark Tower/Trailer_Sub

このディレクトリのファイルを変更し、ファイル名の末尾に数字でフォルダ名を追加する必要があります。

/The Dark Tower/TDT feature.mov   ->   /The Dark Tower/The Dark Tower1.mov

/The Dark Tower/Main Trailer.mov  ->   /The Dark Tower/The Dark Tower2.mov

/The Dark Tower/Trailer_Sub       ->   /The Dark Tower/The Dark Tower3.mov

私はこの作業を手動で行ってきましたが、スクリプトを使用して私が持っている100の映画タイトルに対して実行できたらと思います。私はそれができることを知っていますが、現在私の試みは成功していません。

答え1

Bashismを使用してファイル名を変更する

もちろん、これを行う他の方法もありますが、シェル自体以外のユーティリティに依存しない純粋なBashソリューションを探している場合は、次のことが機能します。

dir="The Dark Tower"
declare -i count=1
for file in "$dir"/*.mov; do
    mv "$file" "${dir}/${dir} ${count}.mov"
    count+=1
done

関連情報