重命名具有相同扩展名和任意名称的所有文件

重命名具有相同扩展名和任意名称的所有文件

我需要用.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 rename,假设pwd是 rootDirectory:

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

或者

rename 's|.*/\K.*\.js|newName.js|' */*
  • rename -n如果您想检查重命名将如何发生,请使用

相关内容