错误=查找:-exec:无终止";" 或"+"

use*_*956 32 macos bash terminal

我正在寻找一些帮助试图让命令工作.我想只查找一些文件并移动它们,但是当我输入此命令时:

find /Volumes/NEXSAN/Engine\ Folders/Input/DTO_Proxy/* -type f -mtime +7 -exec mv -v {} /Volumes/NEXSAN/.2BeDeleted4realz/
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

find:-exec:no terminateating";" 或"+"

我知道我可能错了,但我无法弄清楚缺少什么?

Avi*_*Raj 56

只需终止find命令\;,确保包含前面的空格\;.

find /Volumes/NEXSAN/Engine\ Folders/Input/DTO_Proxy/* -type f -mtime +7 -exec mv -v {} /Volumes/NEXSAN/.2BeDeleted4realz/ \;
Run Code Online (Sandbox Code Playgroud)

  • 对于遇到此问题的任何人,请确保在终止"\;"之前有空格,或者发现仍然会抱怨没有终止";" (13认同)
  • 如何为终止'+'做到这一点?我试过"\ +"并且它不起作用(bash 4.3.46,发现不是告诉我它的版本!?,它在osx上) (8认同)

Mic*_*ior 5

如果您想更正find您的命令,它应该如下所示:

find . -name '*.xml' -exec SetFile -t TEXT {} \;
Run Code Online (Sandbox Code Playgroud)

需要*.xml加引号,以便将其作为参数传递给 shell,find而不是由 shell 扩展。还;需要转义,以便它作为参数的一部分传递给 shell find,而不是由 shell 解释。

请记住,这仅适用于当前目录(和子目录)中的文件,对于创建的任何新文件,您需要再次运行该命令。