Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1507826
  • 博文数量: 487
  • 博客积分: 161
  • 博客等级: 入伍新兵
  • 技术积分: 5064
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-01 07:37
个人简介

只有偏执狂才能生存

文章分类

全部博文(487)

文章存档

2016年(10)

2015年(111)

2014年(66)

2013年(272)

2012年(28)

分类: LINUX

2013-04-11 12:49:44

~$ ls -l /mnt
总用量 0
-rwxr-xr-x 1 root root 0 2010-11-21 15:34 a
-rwxr-xr-x 1 root root 0 2010-11-21 15:34 a.txt
drwxrwxrwx 1 root root 0 2010-11-20 20:22 shared
    再执行这个命令:
~$ find /mnt -path "/mnt/shared" -prune -o -print
/mnt
/mnt/a.txt
/mnt/a 
    再执行这个命令:
~$ find /mnt -path "/mnt/shared" -prune
/mnt/shared
~$ find /mnt -path "/mnt/shared" -prune -a -print
/mnt/shared
    再执行这个命令:
~$ find /mnt -path "/mnt/shared" -prune -print
/mnt/shared
 
    为什么会有以上的不同呢?
    其实这个命令$ find /mnt -path "/mnt/shared" -prune -o -print 要拆分成几段去理解。
    find /mnt -path "/mnt/shared" 这个是最基本的find查找,查找目录为shared的,如果查找到,满足就返回真。
    如果加了 -prune 选项,就表示,不寻找字符串作为寻找文件或目录的范本样式。
    -print选项的意思,假设find指令的回传值为True,就将文件或目录名称列出到标准输出。
    所以 find /mnt -path "/mnt/shared" -prune 去进行查找,如果查找到dir1,find就返回true, -prune实际并没有起作用。  
    find /mnt -path "/mnt/shared" -prune -o -print,由于 -prune 和print是 或的关系,如果find 返回真,首先执行prune,就被忽略了,没有输出; 如果find返回假,然后执行prune,就为真的,然后print。

阅读(456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~