Chinaunix

标题: find多条件查询操作 [打印本页]

作者: hzz1989    时间: 2014-12-02 14:51
标题: find多条件查询操作
find ~ -name "*.backup.*" -o -name "123"' -type f -mtime +10 -exec ls -ltr {} \;
这样只能列出条件-name "123"的文件,如何才能同时列出匹配两个条件的文件。
作者: prcardin    时间: 2014-12-02 15:06
find 试一下  -a
作者: hzz1989    时间: 2014-12-02 15:18
用-a也不行,还是无法找出前一个条件的内容。
回复 2# prcardin


   
作者: prcardin    时间: 2014-12-02 15:20
本帖最后由 prcardin 于 2014-12-02 15:20 编辑

不加o,不加a  只测试前面的能find出来么
作者: hzz1989    时间: 2014-12-02 15:25
prcardin 发表于 2014-12-02 15:20
不加o,不加a  只测试前面的能find出来么


单用-name "*.backup.*"是有数据的。
作者: prcardin    时间: 2014-12-02 15:30
   不知道了。等大神回答
回复 5# hzz1989


   
作者: blackold    时间: 2014-12-02 15:41
回复 1# hzz1989

让我来
  1. find ~ \( -name "*.backup.*" -o -name "123"' \) ...
复制代码

作者: prcardin    时间: 2014-12-02 15:42
大婶驾到
回复 7# blackold


   
作者: hzz1989    时间: 2014-12-02 15:53
blackold 发表于 2014-12-02 15:41
回复 1# hzz1989

让我来



这个我也试过,报错了:

pausr01@host1:/uniiof/users/pausr01>find ~ \(-name "*.backup.*" -o -name "123" \) -type f -mtime +10 -exec ls -ltr {} \;
find: 非法表达式;您在一个二元操作符‘-o’前未带任何东西。
pausr01@host1:/uniiof/users/pausr01>
作者: blackold    时间: 2014-12-02 15:56
回复 9# hzz1989


    \( 前后要有空白字符,大神。
作者: hzz1989    时间: 2014-12-02 16:06
blackold 发表于 2014-12-02 15:56
回复 9# hzz1989



果然,解决了,谢谢大婶~
作者: 刺客阿地    时间: 2014-12-03 09:37
@blackold黑哥出马,没有搞不定的。
作者: chengchow    时间: 2014-12-03 09:54
find ~ -name "*.backup.*" -o -name "123"
这个查询是没问题的,你是后面的限制条件 -tyep f -mtime +10限制了"*.backup.*"的输出了吧
作者: Shell_HAT    时间: 2014-12-03 10:16
回复 13# chengchow


    必须使用括号,请看7楼代码,请看教程 http://bbs.chinaunix.net/thread-441883-1-1.html
作者: blackold    时间: 2014-12-03 10:47
2 + 3 * 5 与 ( 2 + 3 ) * 5 的区别。
作者: chengchow    时间: 2014-12-03 11:31
回复 14# Shell_HAT
嗯,有理,是我疏忽了
测试的时候只有这两个条件,所以不加()是可以的


   
作者: hzz1989    时间: 2014-12-12 10:02
Shell_HAT 发表于 2014-12-03 10:16
回复 13# chengchow


  学习了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2