Rename

重命名具有相同副檔名和任何名稱的所有文件

  • August 19, 2016

我需要重命名所有帶有.js副檔名的文件,但文件名可能會有所不同,例如:

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

需要改名為

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

有沒有辦法做到這一點?

我正在使用 Ubuntu 14.04

ububtu 14 有一個可以選擇的版本find-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

基於 Perl rename,假設pwd是 rootDirectory:

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

或者

rename 's|.*/\K.*\.js|newName.js|' */*
  • rename -n如果您想檢查重命名將如何發生,請使用

引用自:https://unix.stackexchange.com/questions/304479