linux 查找命令find 以及 locate

  find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。

如果使用该命令时,不设置任何参数,则将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

find 默认路径为当前目录,默认表达式EXPRESSIONS为-print,即 find ./ -print

EXPRESSIONS:表达式可能由下列成份组成:操作符、选项、测试表达式以及动作,选项这里不做介绍

 

多条件查找,操作符介绍

// 非
! expr True if expr is false.        
-not expr   Same as ! expr, but not POSIX compliant.

// 同时符合表达式1、表达式2的结果集
expr1 expr2   implied "and"; expr2 is not evaluated if expr1 is false.
expr1 -a expr2  Same as expr1 expr2.
expr1 -and expr2 Same as expr1 expr2, but not POSIX compliant.

// 符合表达式1或者符合表达式2的结果集
expr1 -o expr2  implied "or"; expr2 is not evaluated if expr1 is true.
expr1 -or expr2  Same as expr1 -o expr2, but not POSIX compliant.

// 符合表达式2且不符合表达式1的结果集
expr1 , expr2   ; both expr1 and expr2 are always evaluated.  The  value  of expr1 is 
discarded; the value of the list is the value of expr2.The comma operator can be useful for
searching for several  different  types  of thing, but traversing the filesystem hierarchy 
only once.  The -fprintf action can be used to list the  various matched items into several 
different output files.

测试表达式:

-name   filename             #查找名为filename的文件
-perm                        #按执行权限来查找
-user    username             #按文件属主来查找
-group groupname            #按组来查找
-mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime    -n +n               #按文件访问时间来查GIN: 0px">
-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer   f1 !f2              找文件,-n指n天以内,+n指n天以前 
-ctime    -n +n               #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 
-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                      #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer   f1 !f2               #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size      n[c]               #查长度为n块[或n字节]的文件
-depth                       #使查找在进入子目录前先行查找完本目录
-fstype                     #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f         #查区块装置文件 、目录、字符设备、管道、符号链接、普通文件
-size      n[c]               #查长度为n块[或n字节]的文件
-depth                       #使查找在进入子目录前先行查找完本目录
-fstype                      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                       #查文件时不跨越文件系统mount点
-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                %;      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                       #查文件时不跨越文件系统mount点
-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                        #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune                       #忽略某个目录

动作项(仅做简单了解)

(action)则是对某一个文件进行某种动作(最常见的如-print)

-print: find命令将匹配的文件输出到标准输出。

-ls:使用ls -dils 格式将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

 

常用场景:

1. 根据文件名查找指定目录下的某个文件

find dirName -name *like*.txt 

查找目录dirName下文件名匹配*like*的一个txt文件

2. 根据文件大小进行查找

find dirName -size +500M -print0|xargs -0 du -m|sort -nr

找出指定目录下500M以上的文件,print0和xargs -0配合使用,用来解决文件名中有空格或特殊字符问题。du -m是查看这些文件的大小,并以m为单位显示。最后sort -nr是按照数字反向排序(大的文件在前)

3. 根据类型进行查找

find dirName -type f

查找指定目录下的所有一般文件

 

参考文章

https://www.cnblogs.com/xqzt/p/5427173.html

https://www.runoob.com/linux/linux-comm-find.html


附:locate命令

前提:yum install mlocate 下载该指令

推荐文章 https://www.cnblogs.com/xqzt/p/5426666.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值