使用大括号扩展来更改文件名,而不是扩展名?

Wol*_*olf 6 shell bash

我有一个目录,其中包含一堆具有不同扩展名的文件,但扩展名前的文件名都是一样的。例如,file1.txt、file1.jpg、file1.pdf、file1.odt...

我想更改“file1”部分,但不是扩展名,因此结果将是,例如,newfilename.txt、newfilename.jpg、newfilename.pdf、newfilename.odt

我无法弄清楚如何做到这一点,而不需要mv file1.txt newfilename.txt对每个人都进行乏味的运行。如果您知道要扩展的所有部分,我可以在网上找到很多教程来使用大括号扩展来更改文件名,但是无论扩展名是什么,都可以将 file1 替换为 newfilename 。这是可能的,还是我叫错了树?

谢谢

编辑:对不起,发布此内容后不久,我在 Google 结果中发现了一个不同的页面,该页面为我回答了这个问题:for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done完美运行。

Wol*_*olf 5

我在发布问题后发现了这一点:

for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done

奇迹般有效。