查找/重命名命令未捕获我想要查找的文件名

查找/重命名命令未捕获我想要查找的文件名

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

hello_newest.txt
goodbye_newest.txt

我想重命名它们,以便文件名的“最新”部分被完全删除,这样它们就可以重新出现hello.txt并且goodbye.txt

这是我正在运行的命令 -

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

运行此命令后,它不会抛出错误或对文件执行任何操作。我已经签出了http://www.computerhope.com/unix/rename.htm根据那里面的一些例子,它看起来应该能够工作。

我确信这是一件简单的事情,但我遗漏了什么?

答案1

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

rename _newest '' *

似乎完成了相同的目标。

谢谢您的帮助。

答案2

语法不同。但对我有用:

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

使用 for 循环找到所有 txt 文件,然后使用 sed 删除下划线后的字符。

相关内容