分页: 1 / 1
关于find的一个问题
发表于 : 2014-11-03 9:48
由 jiandan23
首先,大家请看一下下面的这个命令流:
问题如下:
第一个find命令找出./dir文件夹后,默认执行-print,所以输出./dir。为什么第二个find命令在找出./dir文件夹之后,不能
Re: 关于find的一个问题
发表于 : 2014-11-03 11:22
由 cao627
find . -path './dir' -prune 默认等于 find . -path './dir' -prune -a -print 的缘故吧。
-a表示逻辑与,当-a前面的语句为真,就会执行-a后面的语句,因为你当前目录下有dir这个目录,所以 -path './dir' -prune 为真,于是执行print
-o表示逻辑或,如果-o前面的语句为真,就会忽略-o后面的语句(短路),只有-o前面的语句为假才会执行-o后面的语句。
-path './dir' 是一个精确匹配模式,所以 . 和 ./dir2 和 ./dir2/hello 都会匹配失败, 即对于 . 和 ./dir2 和 ./dir2/hello 语句-path './dir' -prune执行结果为假, 于是-o后面的语句被执行了,即他们被打印了。