欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux find命令多个条件与或关系 或者 并且 and or 求反 求否 不包含 有大用 有大大用

2.11 Combining Primaries With Operators
=======================================

Operators build a complex expression from tests and actions.  The
operators are, in order of decreasing precedence:

'( EXPR )'
     Force precedence.  True if EXPR is true.

'! EXPR'
'-not EXPR'     #求反,求否
     True if EXPR is false.  In some shells, it is necessary to protect
     the '!' from shell interpretation by quoting it.

'EXPR1 EXPR2'
'EXPR1 -a EXPR2'
'EXPR1 -and EXPR2'         #并且
     And; EXPR2 is not evaluated if EXPR1 is false.

'EXPR1 -o EXPR2'
'EXPR1 -or EXPR2'    #或者
       

     Or; EXPR2 is not evaluated if EXPR1 is true.


       

表达式之间默认是与的关系,如-name *.c -name path*,符合条件的应该是path*.c的文件。

有时候可能会遇到一条命令想查找两个格式的文件,这个时候就需要用到或关系了。

find -name *.c -or -name *.h



find ./ \( -name "*.jpg" -or -name "*.png" \)  -and  -mtime -40  #查找jpg或png文件 且在40天内修改过的,这里  -and  是可以省略掉的

         

来自  https://blog.csdn.net/remme123/article/details/41724159        


       


       


       

linux下面查询某类型的文件命令如下:


find / -name '*.jpg'


如果要查询jpg和jpeg文件,可使用-o指令

find / -name '*.jpg' -o -name '*.jpeg'


如果你只想查找文件名,而不想返回目录路径,可以使用-exec

find ./ \( -name '*jpg' -o -name '*jpeg' \) -exec basename {} \; >ot.csv


上述命令中的

\(代表一个复杂表达式的开始

\)代表一个复杂表达式的结束

参数{}把符合前面表达式的每个文件传递给basename命令

\;表示exec命令结束


参考链接:

http://www.ling.ohio-state.edu/~kyoon/tts/unix-help/unix-find-command-examples.htm



来自  https://blog.csdn.net/iefreer/article/details/10367233

普通分类: