在太阳下
不管你喜不喜欢,高不高兴,爱与不爱;太阳照旧照耀着你!温暖着你!

《Linux就该这么学》-新手必须掌握的Linux命令-查找定位文件命令-find命令-用于按照指定条件来查找文件所对应的位置

《Linux就该这么学》-新手必须掌握的Linux命令-查找定位文件命令-find命令-用于按照指定条件来查找文件所对应的位置
TIME 2022-12-18 11:40

find命令
用于按照指定条件来查找文件所对应的位置,语法格式为 find [查找范围] 寻找条件

在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上

参数 作用
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
-type b/d/c/p/l/f 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)

这里需要重点讲解-exec参数的重要作用。这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理。它十分类似于第3章将要讲解的管道符技术,并且由于find命令对参数有特殊要求,因此虽然exec是长格式形式,但它的前面依然只需要一个减号(-)。

根据文件系统层次标准(Filesystem Hierarchy Standard)协议,Linux系统中的配置文件会保存到/etc目录中(详见第6章)。如果要想获取该目录中所有以host开头的文件列表,可以执行如下命令:

root@localhost:/# find /etc -name “host*” -print
/etc/apparmor.d/abstractions/hosts_access
/etc/hostname
/etc/hosts.allow
/etc/hosts.deny
/etc/hosts
/etc/host.conf

进阶实验:

在整个文件系统中找出所有归属于linux用户的文件并复制到/root/findresults目录中。
该实验的重点是“-exec {} \;”参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是“\;”。完成该实验的具体命令如下:
find / -user linux -exec cp -a {} /root/findresults/ \;


实例
查找体积大于50M的文件
find . -type f -size +50M

在当前目录查找后缀是以.sql.gz的文件
find . -name ‘*.sql.gz’

在当前目录查找一个名为123.jpg文件
find . -name 123.jpg

模糊搜索
查找当前目录下所有以txt后缀结束的文件
find . -name ‘*.txt’
查找文件名里面包含“gories”关键词的txt文件
find . -name ‘*gories.txt’
如果要搜索的关键词前后都要进行模糊搜索,则需要在关键词前后分别加上*号
find . -name ‘*gor*.txt’
如果要搜索多个关键词,则需要在多个关键词之间加*号
find . -name ‘c*g*.txt’

备注:在进行模糊搜素时候
第一个关键词在*号之前,那么则代表需要匹配文件名开头
如果最后一个关键词在*号之后,那么则代表需要匹配文件名结束
比如说我要搜索“categories.txt”文件,
匹配件名开头的查找命令应该是 find . -name ‘c*.txt’
匹配文件名结束的查找命令应该是 find . -name ‘*s.txt’
如果是多关键词搜索的话,那么关键词一定是按先后顺序匹配的

如果我们如示编写查找命令 find . -name ‘*a*g*s.txt’ 自然能找到这个文件
但是我们这样编写查找命令 find . -name ‘*a*i*g*s.txt’ 自然是找不到这个文件,原因是关键词的先后顺序不匹配

. 当前目录
/ 根目录
~ 当前目录

 


返回目录:《Linux就该这么学》Linux系统学习笔记

点击数:9

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址