我在一个文件夹中有多个文件,并且文件名格式如下所示:
12.xyz.dat.cache
13.abc.dat.cache
我必须像下面这样重命名上面的文件
12.xyz.dat
13.abc.dat
基本上我必须删除尾部为'.cache'的命令。
我在下面尝试过,没有用。
rename 's/\.dat\.cache$/\.dat' *.dat.cache
谢谢,马赫杜
答案 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