同じ拡張子と名前を持つすべてのファイルの名前を変更します。

同じ拡張子と名前を持つすべてのファイルの名前を変更します。

拡張子を持つすべてのファイルの名前を変更する必要があります.jsが、ファイル名が異なる場合があります。たとえば、次のようになります。

rootDirectory
--firstDirectory
----first.js
--secondFileDirectory
----second.js
--thirdDirectory
----third.js

次に、名前を変更する必要があります。

rootDirectory
--firstDirectory
----newName.js
--secondFileDirectory
----newName.js
--thirdDirectory
----newName.js

それを行う方法はありますか?

Ubuntu 14.04を使用しています

答え1

findUbubtu 14にはこのオプションがあるバージョンがあるため、-execdir比較的簡単になります。

find . -name '*.js' -execdir mv -i {} newName.js \;

たとえば、次のツリーがあります。

./A
./A/first.js
./B
./B/second.js

私はコマンドを実行します

$ find . -name '*.js' -execdir mv -i {} newName.js \;

結果ツリーは次のとおりです。

./A
./A/newName.js
./B
./B/newName.js

答え2

PerlベースrenamepwdrootDirectory仮定:

rename 's|(.*/).*\.js|$1newName.js|' */*

または

rename 's|.*/\K.*\.js|newName.js|' */*
  • rename -n名前の変更がどのように進行するかを確認するには、次のようにします。

関連情報