0

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

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

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

不幸的是,我收到了这个错误

find: paths must precede expression

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

4

2 回答 2

2

你最后错过了{}\;

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

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

于 2013-07-31T18:13:03.860 回答
1

您忘记终止 -exec:

find /path/ -name '_p2*' -exec rename _p2 _p4 {} \;
于 2013-07-31T18:15:11.113 回答