linux中的文件查找

在文件系统上查找符合条件的文件,主要使用locate和find,locate是非实时查找(数据库查找),find是实时查找。

locate

依赖于事先构建的索引,索引的构建是在系统较为空闲时自动进行(周期性任务),也可以手动更新数据库(updatedb)。索引构建过程需要遍历整个根文件系统,极消耗资源。


特点

  1. 查找速度快
  2. 模糊查找
  3. 非实时查找
使用方法

locate keyword


find

实时查找工具,通过遍历指定路径下的文件系统完成文件查找。

特点

  1. 查找速度略慢
  2. 精确查找
  3. 实时查找
使用方法

find [OPTION] ... [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径,默认为当前目录

查找条件:指定的查找标准,可为文件名、大小、类型、权限等标准进行,默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做什么操作,默认输出至屏幕

查找条件

根据文件名查找:
  1. -name "文件名称":支持使用glob
  2. -iname "文件名称":不区分大小写
  3. -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称

根据属主、属组查找:
  1. -user username:查找属主为指定用户的文件
  2. -group groupname:查找属组为指定组的文件
  3. -uid UserID:查找属主为指定UID号的文件
  4. -gid GroupID:查找属组为指定GID号的文件
  5. -nouser:查找没有属主的文件
  6. -nogroup:查找没有属组的文件
根据文件类型查找:

-type TYPE:

f:普通文件

d:目录

l:符号链接文件

s:套接字文件

b:块设备文件

c:字符设备文件

p:管道文件

组合条件:

与:-a

或:-o

非:-not,!

根据文件大小查找:

-size [+|-]#UNIT

UNIT:k,M,G

#UNIT:(#-1,#],3k表示查找大于2k小于等于3k

-#UNIT:[0,#-1]

+#UNIT:(#,∞)

按时间戳查找:

以“天”为单位:

-atime

-mtime

-ctime

+2表示两天前,2表示第二天,-2表示两天内

以“分钟”为单位:

-amin

-mmin

-cmin

根据权限查找:

-perm [+|-]MODE

MODE:精确匹配

+MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可

-MODE:每一类对象都必须同时拥有为其指定的权限标准

处理动作
-print:默认动作,显示至屏幕
-ls:对查找到的文件执行 ls -l 
-delete:删除查找到的文件
-fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中
-ok CMD {} \:对查找到的每个文件执行CMD命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec CMD {} \:对查找到的每个文件执行CMD命令
{}:用于引用查找到的文件名


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值