Linux命令——find详解
find是一个非常有效的工具,他可以遍历指定目录甚至整个系统来查找某些文件或目录
find [查找路径] [查找条件] [处理动作]
一、查找路径
(1) ./ 指的是当前目录下开始查找
(2)/ 系统目录下开始查找
(3)/home/username/ 指定目下开始查找(绝对路径)
二、查找条件
1、根据名称查找
(1)-name :区分名称字母大小写
[root@nn nn]# find / -name mn /usr/share/locale/mn /usr/share/X11/xkb/symbols/mn
(2)-iname :不区分名称字母大小写
[root@nn ~]# find / -iname mn /root/MN /usr/share/locale/mn /usr/share/X11/xkb/symbols/mn
2、根据文件从属关系查找
(1)-user :查找指定属主的文件
[root@nn ~]# find / -user gdm /var/lib/gdm/.pulse /var/lib/gdm/.pulse/default.pa -rw-------. 1 gdm gdm 354 4月 11 2018 default.pa [root@nn ~]# ll /var/lib/gdm/.pulse/default.pa -rw-------. 1 gdm gdm 354 4月 11 2018 /var/lib/gdm/.pulse/default.pa
(2)-group :查找指定属组的文件
[root@nn MN]# find /root/MN/ -group root /root/MN/ /root/MN/1 /root/MN/2 /root/MN/3 [root@nn MN]# ll 总用量 0 -rw-r--r--. 1 root root 0 8月 14 19:39 1 -rw-r--r--. 1 root root 0 8月 14 19:39 2 -rw-r--r--. 1 root root 0 8月 14 19:39 3
(3)-uid : 查找属主为指定的UID的文件
[root@master ~]# useradd -u 500 user11 #创建新用户uid为500 [root@master ~]# find / -uid 500 #查找uid为500的文件 /var/spool/mail/user11 /home/user11 /home/user11/.bash_logout /home/user11/.bash_profile /home/user11/.bashrc
(4)-gid :查找属组为指定的GID的文件
[root@master ~]# cat /etc/group #查看属组信息 docker:x:994: user11:x:1000: [root@master ~]# find / -gid 994 -ls #查找gid为944的文件 263628 0 srw-rw---- 1 root docker 0 8月 20 14:12 /run/docker.sock
(5)nouser :查找无属主文件
[root@nn ~]# find / -nouser | head -3/var/lib/docker/overlay2/de8233d5480dd675767f5b938329557152600440855f58fade5577c4e2e2b4a9/diff/usr/local/apache2 /var/lib/docker/overlay2/05f462df51b86abd8ca78aab436dc6693f498b25e1cdd848ac96f66a49cc5b55/diff/var/cache/apt/archives/partial /var/lib/docker/overlay2/cf2c1c9b669135b78ed5aec64b9fb5a8f01002ed940a134a6e5b2deeefd1ac47/diff/usr/local/apache2
(6)nogroup :查找无数组文件
[root@nn ~]# find / -nogroup | tail -3 /var/lib/docker/overlay2/cd1cf0c250448680c6f18458d422f7c7a81e1dc9a0687d457d2c6c8f7658c56b/diff/var/log/lastlog /var/lib/docker/overlay2/cd1cf0c250448680c6f18458d422f7c7a81e1dc9a0687d457d2c6c8f7658c56b/diff/var/log/wtmp /var/lib/docker/overlay2/977f3e26c1d475d32c5b28a27078954570e9880dc217ed803aa0ea0c4447b29b/diff/usr/bin/ssh-agent
3、根据权限查找
(1)-perm mode :精确匹配(匹配的权限值必须完全相等)
[root@nn nn]# find /nn -perm 755 -ls 976546 4 drwxr-xr-x 8 root root 4096 7月 7 2017 /nn 48641923 0 drwxr-xr-x 2 root root 58 7月 7 2017 /nn/css 78622835 4 drwxr-xr-x 2 root root 4096 7月 7 2017 /nn/img 103528340 4 drwxr-xr-x 2 root root 4096 7月 7 2017 /nn/index 976452 0 drwxr-xr-x 2 root root 94 7月 7 2017 /nn/js 48641927 0 drwxr-xr-x 2 root root 112 7月 7 2017 /nn/php 78622854 0 drwxr-xr-x 2 root root 154 7月 7 2017 /nn/.idea
(2)-perm -mode :模糊查询(每一类用户(属主,属组,其他)的权限中的每一位(r,w,x)同时符合条件既满足,9位权限之间存在 “且” 关系);
[root@nn MN]# find / -perm -755 -ls | head 524352 0 drwxr-xr-x 4 root root 32 7月 24 11:06 /boot/efi/EFI79 0 drwxr-xr-x 2 root root 62 7月 24 11:06 /boot/efi/EFI/BOOT 524353 12 drwxr-xr-x 2 root root 8192 7月 24 17:42 /boot/grub2/i386-pc 1069121 4 drwxr-xr-x 2 root root 4096 7月 24 17:42 /boot/grub2/locale 1572930 0 drwxr-xr-x 2 root root 25 7月 24 17:42 /boot/grub2/fonts68 0 drwxr-xr-x 2 root root 27 7月 24 17:38 /boot/grub74 6488 -rwxr-xr-x 1 root root 6639904 11月 9 2018 /boot/vmlinuz-3.10.0-957.el7.x86_6477 6488 -rwxr-xr-x 1 root root 6639904 7月 24 17:41 /boot/vmlinuz-0-rescue-187c4b8ed94d49429dd12ab3ea220b473 0 drwxr-xr-x 20 root root 3340 8月 12 23:36 /dev37126 0 lrwxrwxrwx 1 root root 3 8月 12 14:11 /dev/cdrom -> sr0
(3)-perm /mode :模糊查询(任何一类用户(属主,属组,其他)的权限中的任何一位(r,w,x)符合条件即满足,9位权限之间存在 “或” 关系);
[root@nn MN]# find /root/MN /perm 600 -ls 103529246 0 drwxr-xr-x 2 root root 33 8月 14 19:39 /root/MN 103533344 0 -rw-r--r-- 1 root root 0 8月 14 19:39 /root/MN/1 103533345 0 -rw-r--r-- 1 root root 0 8月 14 19:39 /root/MN/2 103533346 0 -rw-r--r-- 1 root root 0 8月 14 19:39 /root/MN/3
4、根据文件类型查询
-type : 根据不同的文件类型筛选
[root@nn MN]# find / -type f -ls | head -3 1069156 4 -rwx------ 1 root root 134 11月 10 2018 /boot/efi/EFI/centos/BOOT.CSV 1069157 4 -rwx------ 1 root root 134 11月 10 2018 /boot/efi/EFI/centos/BOOTX64.CSV 1069158 1128 -rwx------ 1 root root 1151864 11月 10 2018 /boot/efi/EFI/centos/MokManager.efi [root@nn MN]# find / -type d -ls | head -3 64 0 dr-xr-xr-x 18 root root 234 8月 14 15:39 /64 4 dr-xr-xr-x 5 root root 4096 8月 12 14:12 /boot67 0 drwx------ 3 root root 17 11月 9 2018 /boot/efi
5、根据文件大小查询
常用单位: k,M, G
(1)-size +#unit : (#,∞ )大于#的文件
[root@nn MN]# ll -h-rw-r--r--. 1 root root 4.1K 8月 15 00:55 1 -rw-r--r--. 1 root root 3.4K 8月 15 00:55 2 -rw-r--r--. 1 root root 2 8月 15 00:33 3 [root@nn MN]# find /root/MN/ -size +4k #大于4k /root/MN/1
(2)-size -#unit : [0,#-1] 大于等于0,小于等于#-1
[root@nn MN]# ll -h-rw-r--r--. 1 root root 4.1K 8月 15 00:55 1 -rw-r--r--. 1 root root 3.4K 8月 15 00:55 2 -rw-r--r--. 1 root root 2 8月 15 00:33 3 [root@nn MN]# find /root/MN/ -size -4k #大于等于0k小于3k /root/MN/ /root/MN/3 [root@nn MN]# find /root/MN/ -size -3k #大于0k小于等于2k /root/MN/ /root/MN/3 [root@nn MN]# find /root/MN/ -size -5k #大于0k夏鸥等于4k /root/MN/ /root/MN/2 /root/MN/3
(3)-size #unit :(#-1,#] 大于#-1,小于等于#
[root@nn MN]# ll -h-rw-r--r--. 1 root root 4.1K 8月 15 00:55 1 -rw-r--r--. 1 root root 3.4K 8月 15 00:55 2 -rw-r--r--. 1 root root 2 8月 15 00:33 3 [root@nn MN]# find /root/MN/ -size 3k #大于2k小于3k [root@nn MN]# find /root/MN/ -size 4k #大于3K小于4k /root/MN/2[root@nn MN]# find /root/MN/ -size 5k #大于4k小于5k/root/MN/1
6、根据时间查找
n为n*24小时 ,即以天为单位。通过以下命令 可查看文件的这三个时间戳
stat filename
(1)-atime :access time :文件的最后访问时间 cat
[root@nn ~]# find / -atime +2 | head -1 #查找最近一次访问时间在两天以前的文件 /boot/efi/EFI/centos/BOOT.CSV [root@nn ~]# stat /boot/efi/EFI/centos/BOOT.CSV #查看文件时间戳文件:"/boot/efi/EFI/centos/BOOT.CSV"大小:134 块:8 IO 块:4096 普通文件 设备:801h/2049d Inode:1069156 硬链接:1 权限:(0700/-rwx------) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:boot_t:s0 最近访问:2018-11-10 01:53:06.000000000 +0800 #所找到的文件符合条件 最近更改:2018-11-10 01:53:06.000000000 +0800 最近改动:2019-07-24 11:06:31.939673005 +0800 创建时间:-
(2)-ctime:change time :文件最后改动时间,这里改动是指文件内容发生修改或者文件权限,路径发生改变。 echo chmod chown chgrp
[root@nn ~]# find / -ctime -1 | head -3 #查找一天内被改动的文件 / /dev/char /dev/char/189:137 [root@nn ~]# stat /dev/char #查看时间文件:"/dev/char"大小:3080 块:0 IO 块:4096 目录 设备:5h/5d Inode:9718 硬链接:2 权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:device_t:s0 最近访问:2019-08-15 23:57:17.386863729 +0800 最近更改:2019-08-15 23:20:23.209021653 +0800 最近改动:2019-08-15 23:20:23.209021653 +0800 #符合查找条件的文件 创建时间:-
(3)-mtime:modify time :文件最后更改时间,指的是文件内容发生修改的最后时间。 echo
[root@nn ~]# find / -mtime 1 | head -3 #查找从现在起往前算一天更改过的文件 /proc/sys/fs/binfmt_misc /proc/sys/fs/binfmt_misc/register /proc/sys/fs/binfmt_misc/status [root@nn ~]# stat /proc/sys/fs/binfmt_misc #查看时间文件:"/proc/sys/fs/binfmt_misc"大小:0 块:0 IO 块:4096 目录 设备:4ch/76d Inode:1 硬链接:2 权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 环境:system_u:object_r:binfmt_misc_fs_t:s0 最近访问:2019-08-16 00:01:12.588839041 +0800 最近更改:2019-08-14 19:16:20.741997870 +0800 #符合查找条件的文件 最近改动:2019-08-14 19:16:20.741997870 +0800 创建时间:-
(4)-amin 、 -cmin 、 -mmin 是以分钟为单位,用法和上面的一样
三、处理动作
1、-ls :类似于对查找到的文件执行 “ls -l”命令;
2、-ok COMMAND {} \ ; :执行命令,交互式
3、-exec COMMAND {} \ ; :执行命令
4、| xargs COMMAND : 执行命令
四、多个选项共同使用
1、-a :与,同时满足,如果组合条件中只有 -a ,可以省略
2、-o :或,只需要满足其一即可,优先级比 -a 低,如果要先执行,需要加(),()需要转译,即 \(··· \)
3、-not :取反
4、非A且非B : -not A -a -not B = -not \( A -o B \)
5、非A或非B :-not A -o -not B = -not \( A -a B \)
转载于:https://www.cnblogs.com/aichitudou/p/11354266.html
Linux命令——find详解相关推荐
- Linux命令-ls详解
Linux命令-ls详解(适合小白用户参考) 1.ls 不加任何参数,表示查询当前目录下的文件/文件夹 小提示:上面的白色文字表示普通文件,蓝色文字表示目录 2.ls 后面 ...
- 面试官都在问 | Linux命令mpstat详解
面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...
- linux 命令 curl 详解
一.curl 介绍 curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出stdout上面; 可以用它来构造http request报文,curl(C ...
- linux命令 正则表达式,详解Linux命令中的正则表达式
详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...
- LINUX命令大全详解备忘录
文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...
- Linux命令大全详解,让我们轻松入门学习Linux!
1.最基本常用命令 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目录名] cha ...
- linux命令历史详解
概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bas ...
- linux命令——ll详解
一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改: ...
- Linux命令lsscsi详解
@ 一.什么是scsi 二.常见硬盘接口 1. IDE接口的硬盘 2. SCSI接口硬盘 3. SATA接口类型 三. lsscsi命令 1. lsscsi 命令安装 2. lsscsi命令英文手册 ...
- linux命令ps详解
原文地址:http://apps.hi.baidu.com/share/detail/32573968 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显 ...
最新文章
- 台大喊你来上课,深度学习优化,免费的哟
- 学习Exchange管理最佳实践
- 对称加密和非对称加密介绍和区别
- 解决 DNS general: warning: *** POKED TIMER ***
- 进程和线程(通信方式)、调度算法(6种)
- javascript 总结笔记
- c语言编写九宫格,关于九宫格的算法
- POJ1236 Network of Schools
- iphone如何信任软件_苹果企业开发者证书成漏洞 盗版商发布破解版iPhone应用
- 10-20-030-简介-Kafka Briker IO
- 去中心化存储项目Sia计划于2月初启动Sia基金会
- 计算机教室简笔画图片大全集,教室场景画简笔画图片精选
- 未来计算机源消能耗,磁微处理器挑战计算机最低能耗极限
- 时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
- 服务器系统和操作系统有什么区别
- 《计算机操作系统(计算机)》
- 一文读懂三种并发控制机制(封锁、时间戳、有效性确认,大量例子+证明)
- 关于Hex文件的解析和修改应用
- python收益风险点图_使用python matploblib库绘制准确率,损失率折线图
- jmeter配置原件
热门文章
- mysql退出当前数据库,再次 show databases
- asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
- Cocos2d中使用颜色混合:加算,减算
- 中国九章量子计算机诞生!比最快的超算快一百万亿倍
- 浙大团队研发铜基沸石纱布口罩,1分钟杀灭新冠病毒逾99%
- 疫情加速人脸识别落地:多地试点AI门禁,居民刷脸核验健康码
- VC++ MFC DLL动态链接库编写详解
- centos6.8 yum mysql7_Centos6.8通过yum安装mysql5.7
- java.lang.IllegalStateException: 启动子级时出错
- JDK1.8中的HashMap,HashTable,ConcurrentHashMap有什么区别?