我的主目录中有这两个文件 -
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 删除下划线后的字符。