正規表現に一致するサブディレクトリの名前を繰り返し変更します。

正規表現に一致するサブディレクトリの名前を繰り返し変更します。

というフォルダがあるメディアサーバーがありますSeries。 ( /media/Expansion2/Series/)

そこには(驚くべきことに!)テレビシリーズがあります。これは単なるプログラム名です。/media/Expansion2/Series/The Big Bang Theory/

各ショーのフォルダ内に(それが問題です)シーズンフォルダがあります。私は現在、次の2つの規則(そしておそらく他の規則)を混在して使用しています。

  1. /media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1
  2. /media/Expansion2/Series/The Big Bang Theory/Season 2

最後に、すべてのフォルダの名前をSeason #

正規表現で次のように言えます。s/.*(Season \d)/$1

ファイルではなくフォルダでのみ機能します。さらに、これは約50以上のディスプレイサブフォルダで機能するため、その/media/Expansion2/Series/レベルから始めて各シリーズを確認する必要があります。 :)

ベストアンサー1

Debianとその派生製品(Ubuntuを含む):

find /media/Expansion2/Series/ -type d -exec rename -n 's/.*(Season \d)/$1/' {} ";"

このrenameコマンドはPerlパッケージの一部です。他のディストリビューションは標準のLinuxコマンド以外には提供していませんが、renameここでは役に立ちません。

(-not true)が実行したい操作を表示し、rename -n問題が発生しない場合は、-nを省略してそのままにしてください。

おすすめ記事