免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1268 | 回复: 5
打印 上一主题 下一主题

find。。。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-12 16:31 |只看该作者 |倒序浏览
#find ./ -prune -type f 查找当前目录下的所有常规文件。
可是结果是这样一个文件也找不到,有问题吗????
#find . -prune -type d 查找当前目录下的所有目录
迷惑了,find也搞不定。。。
prune到底是什么意思????

论坛徽章:
0
2 [报告]
发表于 2004-11-12 17:15 |只看该作者

find。。。。。

直接用:
find . -type l
find . -type d

论坛徽章:
0
3 [报告]
发表于 2004-11-12 17:41 |只看该作者

find。。。。。

不行的老大,find . -type l ;find . -type d这样搜的是所有目录及子目录,不知你试没?????????

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-11-12 19:09 |只看该作者

find。。。。。

find -prune是搜索时避开某些目录

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2004-11-12 19:12 |只看该作者

find。。。。。

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

  1. 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  



避开多个文件夹

  1. find /usr/sam \( -path "/usr/sam/dir1" -o -path "/usr/sam/file1" \) -prune -o -print
复制代码



圆括号表示表达式的结合。
\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

正确写法去掉()即可,如下:

  1. #find /usr/sam  \-path "/usr/sam/dir1" -o -path "/usr/sam/file1" \ -prune -o -print   
复制代码



查找某一确定文件,-name等选项加在-o 之后

  1. #find /usr/sam  \-path "/usr/sam/dir1" -o -path "/usr/sam/file1" \ -prune -o -name "temp" -print
复制代码


以上在redhat9下试验成功

论坛徽章:
0
6 [报告]
发表于 2004-11-12 19:29 |只看该作者

find。。。。。

明白了,今天晚上也研究了一下find,还是有一些收获!!!
谢谢各位!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP