我正在尝试使用以下命令在许多子目录中递归地查找和重命名文件:
本质上,我正在尝试重命名以'_p2'开头的文件并替换'_p2',以便它们以'_p4'开头。
find /XXX/YYY -name '_p2*' -exec rename _p2 _p4 '_p2*'
不幸的是,我收到此错误
find: paths must precede expression
我尝试使用find而不重命名,它工作正常。谁能让我知道我做错了什么?
答案 0 :(得分:2)
你最后错过了{}\;
:
find /XXX/YYY -name '_p2*' -exec rename _p2 _p4 {}\;
{}
将文件名传递给rename
,\;
终止rename
命令。
答案 1 :(得分:1)
你忘了终止-exec:
find /path/ -name '_p2*' -exec rename _p2 _p4 {} \;