Rename
重命名具有相同副檔名和任何名稱的所有文件
我需要重命名所有帶有
.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
如果您想檢查重命名將如何發生,請使用