是否需要使用括号反斜杠来指定 find 命令中的优先级?

是否需要使用括号反斜杠来指定 find 命令中的优先级?

在这个命令中

find . -xdev -type f \( -mtime 0 -or -mtime 1 \) -exec cp -aPv "{}" $dest.new \;

括号里的意思是\( -mtime 0 -or -mtime 1 \)优先级吗?

它们前面是否需要加反斜杠?为什么?

答案1

是的,括号意味着优先级,并且需要反斜杠来对 shell 进行转义。从man find

   ( expr )
          Force  precedence.   Since  parentheses  are special to the shell, you will normally need to quote them.  Many of the examples in this manual page use backslashes for this purpose: `\(...\)'
          instead of `(...)'.

所以在你的例子中,他们只是对-or语句进行分组。还有更多信息这里按优先顺序。

相关内容