![是否需要使用括号反斜杠来指定 find 命令中的优先级?](https://linux22.com/image/105330/%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E6%8B%AC%E5%8F%B7%E5%8F%8D%E6%96%9C%E6%9D%A0%E6%9D%A5%E6%8C%87%E5%AE%9A%20find%20%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%9F.png)
在这个命令中
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
语句进行分组。还有更多信息这里按优先顺序。