08.Linux文件查找 (find)
2021/7/19 7:09:38
本文主要是介绍08.Linux文件查找 (find),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 08.Linux文件查找
- 1.find查找概述
- 1.1 为什么需要查找
- 1.2 为什么是find
- 1.3 find命令语法
- 2.find查找示例
- 2.1 find基于名称查找
- 2.2 find基于大小查找
- 2.3 find基于类型查找
- 2.4find基于时间查找
- 2.5find基于用户查找
- 2.6 find基于权限查找
- 2.7 find基于逻辑符
- 3.find 动作处理
- 3.1 find结合exec
- 3.2 find结合xargs
- 3.3 find结合grep
- 1.find查找概述
08.Linux文件查找
1.find查找概述
1.1 为什么需要查找
- 1.很多时候我们可能会忘了文件所在的位置,此时就
需要通过 find 来查找; - 2.有时候需要通过内容查找到对应的文件,此时就需
要通过 find 来查找;
1.2 为什么是find
- 因为 find 命令可以根据不同的条件来进行查找文件
- 比如:
- 文件名称、
- 文件大小、
- 文件时间、
- 属主属组、
- 权限等等、
- 可以通过如上几种方式查找文件,从而实现精准定位
1.3 find命令语法
命令 | 路径 | 选项 | 表达式 | 动作 |
---|---|---|---|---|
find | [path] | [options] | [expression] | [action] |
查找 | 地区 | 妹子 | 18-28 | ??? |
2.find查找示例
2.1 find基于名称查找
#1.创建文件 touch /etc/sysconfig/network- scripts/{ifcfg-eth1,IFCFG-ETH1} #2.查找/etc目录下包含ifcfg-eth1名称的文件 [root@xuliangwei ~]# find /etc -name "ifcfg-eth1" #3.-i 忽略大小写 [root@xuliangwei ~]# find /etc -iname "ifcfg-eth1" #查找/etc目录下包含ifcfg-eth名称所有文件 [root@xuliangwei ~]# find /etc/ -name "ifcfg-eth*" [root@xuliangwei ~]# find /etc -iname "ifcfg-eth*"
2.2 find基于大小查找
- +5 : 大于5M
- -5 : 小于5M
- 5 : 等于5M
#1.查找大于5M的文件 [root@xuliangwei ~]# find /etc -size +5M #2.查找等于5M的文件 [root@xuliangwei ~]# find /etc -size 5M #3.查找小于5M的文件 [root@xuliangwei ~]# find /etc -size -5M ###查找大于5m小于7m [root@node ~]# dd if=/dev/zero of=/etc/big count=6M bs=1 [root@node ~]# find /etc -size +5M -a - size -7M | xargs ls -lh -rw-r--r--. 1 root root 6.0M 7月 16 15:27 /etc/big
2.3 find基于类型查找
# f 文件 # find /dev -type -f # d 目录 # find /dev -type -d # l 链接 # find /dev -type -l # b 块设备 # find /dev -type -b # c 字符设备 # find /dev -type -c # s 套接字 # find /dev -type -s # p 管道文件 # find /dev -type -p
2.4find基于时间查找
#1.创建测试文件(后期shell会讲) [root@xuliangwei ~]# for i in {01..10};do date -s 201904$i && touch file-$i;done #2.查找7天以前的文件(不会打印当天的文件) 7天以前 的查找出来,然后删除 == 保留了最近的7天的数据 [root@xuliangwei ~]# find ./ -iname "file- *" -mtime +7 #3.查找最近7天的文件,不建议使用(会打印当天的文件) 将最近7天的数据给列出来,如果删除; [root@xuliangwei ~]# find ./ -iname "file- *" -mtime -7 #4.查找第7天文件(不会打印当天的文件) [root@xuliangwei ~]# find ./ -iname "file- *" -mtime 7 # 查找最近120分钟发生变化的文件 [root@node ~]# find ./ -type f -mmin -122 ./file.txt # 查找多少分钟内发生过修改的文件 [root@node ~]# find ./ -type f -mmin -122 ./file.txt # 查找系统有那些命令在最近多长时间内,发生过变化() [root@node ~]# find /bin/ /sbin/ -type f -mmin -5 /bin/python2.7 /bin/gg #面试题: 查找/var/log下所有以.log结尾的文件,并保留最近7天的log文件。 [root@xuliangwei ~]# find /var/log -type f -name "*.log" -mtime +7 -delete
2.5find基于用户查找
-user -group -nouser -nogroup #查找属主是jack [root@xuliangwei ~]# find /home -user jack #查找属组是admin [root@xuliangwei ~]# find /home -group admin #查找属主是jack, 属组是admin [root@xuliangwei ~]# find /home -user jack -group admin #查找属主是jack, 并且属组是admin [root@xuliangwei ~]# find /home -user jack -a -group admin #查找属主是jack, 或者属组是admin [root@xuliangwei ~]# find /home -user jack -o -group admin #查找没有属主 [root@xuliangwei ~]# find /home -nouser #查找没有属组 [root@xuliangwei ~]# find /home -nogroup #查找没有属主或属组 [root@xuliangwei ~]# find /home -nouser -o -nogroup
2.6 find基于权限查找
-
=perm [ / | -] MODE
- MODE : 精确权限匹配 644
- -MODE : 每一类对象都必须同时拥有指定的权限:(并且的关系)
- /MODE : 任何一类(UGO)只要有一位匹配即可;(或者的关系)
# 精确 [root@web ~]# find /root -type f -perm 644 -ls #-包含(u涵盖6,并且g涵盖4,并且o涵盖4) [root@web ~]# find /root -type f -perm -644 -ls #/或者(U为6 或者g为4 或者o为0) [root@web ~]# find /root -type f -perm /640 -ls # 特殊权限(最低权限是4000 4755 也满足需求;) [root@web ~]# find /usr/bin/ /usr/sbin/ - type f -perm -4000 -ls [root@web ~]# find /usr/bin/ /usr/sbin/ - type f -perm -2000 -ls [root@web ~]# find /usr/bin/ /usr/sbin/ - type f -perm -1000 -ls
2.7 find基于逻辑符
符号 | 作用 |
---|---|
-a | 与(并且) |
-o | 或(或者) |
-not | ! | 非(取反) |
#1.查找当前目录下,属主不是root的所有文件 [root@xuliangwei ~]# find . -not -user root [root@xuliangwei ~]# find . ! -user root #2.查找当前目录下,属主属于hdfs,并且大小大于1k的文件 [root@xuliangwei ~]# find . -type f -a -user hdfs -a -size +1k #3.查找当前目录下的属主为root或者以xml结尾的普通文件 [root@xuliangwei ~]# find . -type f -a \( -user root -o -name '*.xml' \)
3.find 动作处理
- 查找到一个文件后,需要对文件进行如何处理 find的默认动作是-print
动作 | 含义 |
---|---|
打印查找到的内容(默认) | |
-ls | 以长格式显示的方式打印查找到的内容 |
-delete | 删除查找到的文件(仅能删除空目录) |
-ok | 后面跟自定义shell命令(会提示是否操作) |
-exec | 后面跟自定义shell命令(标准写法-exec |
这篇关于08.Linux文件查找 (find)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法