错误在linux中以递归方式查找和重命名

时间:2013-07-31 18:10:06

标签: linux

我正在尝试使用以下命令在许多子目录中递归地查找和重命名文件:

本质上,我正在尝试重命名以'_p2'开头的文件并替换'_p2',以便它们以'_p4'开头。

 find /XXX/YYY -name '_p2*' -exec rename _p2 _p4 '_p2*'

不幸的是,我收到此错误

find: paths must precede expression

我尝试使用find而不重命名,它工作正常。谁能让我知道我做错了什么?

2 个答案:

答案 0 :(得分:2)

你最后错过了{}\;

find /XXX/YYY -name '_p2*' -exec rename _p2 _p4 {}\;

{}将文件名传递给rename\;终止rename命令。

答案 1 :(得分:1)

你忘了终止-exec:

find /path/ -name '_p2*' -exec rename _p2 _p4 {} \;