CU编号:
690903
注册:2008-4-13
最后登录:
2009-05-05
帖子:
精华:0
状态: ...在线...
[]
[]
[博客]
|
[]
发表于 2009-5-4 21:05
|
[root@Greendays tmp]# find . -name "." -o -prune -type d -print | xargs du -sk
8 ./orbit-root
4 ./virtual-root.Xmi9hq
4 ./plugtmp-6
12 ./plugtmp-4
4 ./keyring-ILBqAn
4 ./keyring-ulWKCF
find 的选项 -o 怎么理解?
|
您对本贴的看法:
|
|
|
|
|
天使
CU编号:
637535
注册:2007-11-5
最后登录:
2009-05-05
帖子:
精华:0
来自:重庆
状态: ...离线...
[]
[]
[博客]
|
[]
发表于 2009-5-5 01:58
|
《十二篇》中有讲解
| |
shell基础二:查找技巧,find及xargs的使用
补一个:使用find查找文件的时候怎么避开某个文件目录
比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [path ..] [expression] 在路径列表的后面的是表达式
-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path
"/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune ,与逻辑表达式为假。
如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print 返回真,或逻辑表达式为真;否则不求值
-print,或逻辑表达式为真。
这个表达式组合特例可以用伪码写为 if -path "/usr/sam" then
-prune
else
-print
避开多个文件夹 find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
圆括号表示表达式的结合。
\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。
阅读(676) | 评论(0) | 转发(0) |