小编Yor*_*rov的帖子

GNU find -not 和 GNU find -prune -o -print 之间的区别

关于在 vim 中打开除 [condition] 之外的所有文件的答案:

https://unix.stackexchange.com/a/149356/98426

给出了类似的答案:

find . \( -name '.?*' -prune \) -o -type f -print

(我修改了答案,因为我在这里的问题与 vim 无关)

其中否定条件位于转义括号中。但是,在我的测试文件中,以下内容

find . -type f -not -name '^.*'

产生相同的结果,但更易于读写。-not 方法与 -prune 方法一样,会修剪任何以 . (点)。我想知道 -not 和 -prune -o -print 方法会产生不同结果的边缘情况是什么。

Findutils 的信息页面如下:

-not expr : 如果 expr 为假则为真

-prune:如果文件是目录,则不下降到其中。(并进一步说明需要 -o -print 才能实际排除顶级匹配目录)

他们似乎很难以这种方式进行比较,因为 -not 是一个测试,而 -prune 是一个动作,但对我来说,它们是可以互换的(只要 -o -print 出现在 -prune 之后)

find gnu dot-files file-search syntax

2
推荐指数
2
解决办法
327
查看次数

标签 统计

dot-files ×1

file-search ×1

find ×1

gnu ×1

syntax ×1