LInux之find查找

目录

LInux之find查找

定义

详解

格式

参数及作用

详解

1.按照文件名搜索

 2.按照文件大小搜索

3.按照修改时间搜索

4.按照权限搜索

 5.按照所有者和所属组搜索

6.按照文件类型搜索

7.逻辑运算符

8.其他选项

-exec参数

获取到该目录中所有以host开头的文件列表

如在整个系统中搜索权限中包括SUID权限的所有文件


LInux之find查找

定义

        find命令 --- 用于按照指定条件来查找文件

详解

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

格式

        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 …… {}\;
后面可跟用于进一步处理搜索结果的命令

详解

1.按照文件名搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -name: 按照文件名搜索
    -iname: 按照文件名搜索,不区分文件名大小写
    -inum: 按照 inode 号搜索

 2.按照文件大小搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -size [+|-]大小: 按照指定大小搜索文件
    这里的“+”的意思是搜索比指定大小还要大的文件, “-”的意思是搜索比指定大小还要小的文件

find -size -n --- 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

3.按照修改时间搜索

        Linux中的文件由atime(访问时间)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -atime [+|-]时间: 按照文件访问时间搜索
    -mtime [+|-]时间: 按照文件数据修改时间搜索
    -ctime [+|-]时间: 按照文件状态修改时间搜索
参数作用
-atime n将n 24小时内存取过的文件列出来
-ctime n将n 24小时内改变、新增的文件裹着目录列出来
-mitime n将n*24小时内修改过的文件或者目录列出来
-newer file把比file还要新的文件列出来

图中最右边为目前时间,越往左则代表越早之前的时间轴

        +4 --- 代表大于等于5天前的文件档名:find /var -mtime +4

        -4 --- 代表小于等于4天内的文件档名:find /var -mtime -4

        4 --- 代表4 -5 那一天的文件档名:find /var -mtime 4

例 --- 查找将过去系统上面 24 小时内有更动过内容 (mtime)
  • -5:代表 5 天内修改的文件
  • 5:代表前 56 天那一天修改的文件
  • +5:代表 6 天前修改的文件

[root@localhost /]# find /var -mtime -5

[root@localhost /]# find /var -mtime 5

[root@localhost /]# find /var -mtime +5

4.按照权限搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
    -perm -权限模式: 查找文件权限全部包含“权限模式”的文件
    -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件

 

 5.按照所有者和所属组搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
    -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
    -user 用户名: 按照用户名查找所有者是指定用户的文件
    -group 组名: 按照组名查找所属组是指定用户组的文件
    -nouser: 查找没有所有者的文件

6.按照文件类型搜索

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -type d: 查找目录
    -type f: 查找普通文件
    -type l: 查找软链接文件

7.逻辑运算符

[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
    -a: and 逻辑与
    -o: or 逻辑或
    -not: not 逻辑非

 表示查找 /test目录下所有文件名以 .txt 结尾且文件大小大于 0MB 的文件。

8.其他选项

-exec参数

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

find . -name "*.txt" -exec chmod 666 {} \;

在这个命令中,"."表示从当前目录开始查找,"-name"参数表示查找文件名匹配指定模式的文件,"*.txt"表示查找扩展名为.txt的文件,"-exec"参数用于在找到的文件上执行一个命令,"chmod 666 {}"表示将找到的文件的权限设置为可读写,";"用于表示命令的结束。注意,在使用-exec参数时,{}表示找到的文件名。

获取到该目录中所有以host开头的文件列表

        根据文件系统层次标准(Filesystem Hierarchy Standard )协议, Linux 系统中的配置文件会保存到 /etc目录中。
[root@localhost /]# find /etc -name "host*" -print

如在整个系统中搜索权限中包括SUID权限的所有文件

[root@localhost /]# find / -perm -4000 -print

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White乄joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值