查找/重命名命令不抓住我想要它find的文件名

我在我的主目录中有这两个文件 –

hello_newest.txt goodbye_newest.txt 

我想重命名它们,以便文件名的“最新”部分被完全删除,以便他们能够回忆hello.txthello.txt

这是我正在运行的命令 –

 find -name "*.txt" -exec rename 's/newest//i' {} ";" 

它没有抛出一个错误,或者在我运行这个命令后对文件做任何事情。 我已经检查了http://www.computerhope.com/unix/rename.htm ,它看起来应该基于这些例子中的一些工作。

我确定这很简单,但是我错过了什么?

看起来可能是我们所使用的Redhat版本。 命令 –

rename _newest '' *

似乎完成相同的目标。

谢谢您的帮助。

不同的语法。 但是为我工作:

 for i in *.txt; do mv "$i" "`echo $i | sed 's/_[^.]*//'`"; done 

所有的txt文件都是使用for循环find的,然后使用sed删除下划线之后的文件。