如何在Linux中一次性重命名多个文件

时间:2018-12-13 07:40:48

标签: linux

我在一个文件夹中有多个文件,并且文件名格式如下所示:

12.xyz.dat.cache
13.abc.dat.cache

我必须像下面这样重命名上面的文件

12.xyz.dat
13.abc.dat

基本上我必须删除尾部为'.cache'的命令。

我在下面尝试过,没有用。

rename 's/\.dat\.cache$/\.dat' *.dat.cache

谢谢,马赫杜

2 个答案:

答案 0 :(得分:1)

这是因为您错过了perlexp中的斜杠“ /”。为了确保捕获到一个.dat文件,您应该转义。:

rename 's/\.dat.cache$/\.dat/' *.dat.cache

尝试这个。

答案 1 :(得分:0)

如果您没有或不喜欢重命名,则可以使用以下替代方法删除所有结尾的.cache:

find . -name '*.cache' | while read NAME; do mv "${NAME}" "${NAME%.cache}"; done