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详解相关推荐

  1. Linux命令-ls详解

    Linux命令-ls详解(适合小白用户参考) 1.ls        不加任何参数,表示查询当前目录下的文件/文件夹 小提示:上面的白色文字表示普通文件,蓝色文字表示目录 2.ls        后面 ...

  2. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

  3. linux 命令 curl 详解

    一.curl 介绍 curl是一个命令行访问URL的计算机逻辑语言的工具,发出网络请求,然后得到数据并提取出,显示在标准输出stdout上面; 可以用它来构造http request报文,curl(C ...

  4. linux命令 正则表达式,详解Linux命令中的正则表达式

    详解Linux命令中的正则表达式 Mark Do 2017年9月19日 暂无评论 阅读 981 次 命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式 ...

  5. LINUX命令大全详解备忘录

    文件目录操作命令 ls命令 cd命令 pwd命令 mkdir命令 rm 命令 rmdir 命令 mv命令 cp 命令 touch 命令 cat 命令 nl命令 more命令 less 命令 head ...

  6. Linux命令大全详解,让我们轻松入门学习Linux!

    1.最基本常用命令 序号 命令 对应英文 作用 01 ls list 查看当前文件夹下的内容 02 pwd print wrok directory 查看当前所在文件夹 03 cd [目录名] cha ...

  7. linux命令历史详解

    概念:顾名思义,我们在linux终端输过的命令,系统都会将他们加载到内存中,以便我们快速调用命令.另外,Bash拥有自动记录命令历史的功能,用户所执行的命令会在注销时自动记录到自己的家目录下的.bas ...

  8. linux命令——ll详解

    一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改: ...

  9. Linux命令lsscsi详解

    @ 一.什么是scsi 二.常见硬盘接口 1. IDE接口的硬盘 2. SCSI接口硬盘 3. SATA接口类型 三. lsscsi命令 1. lsscsi 命令安装 2. lsscsi命令英文手册 ...

  10. linux命令ps详解

    原文地址:http://apps.hi.baidu.com/share/detail/32573968 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显 ...

最新文章

  1. 台大喊你来上课,深度学习优化,免费的哟
  2. 学习Exchange管理最佳实践
  3. 对称加密和非对称加密介绍和区别
  4. 解决 DNS general: warning: *** POKED TIMER ***
  5. 进程和线程(通信方式)、调度算法(6种)
  6. javascript 总结笔记
  7. c语言编写九宫格,关于九宫格的算法
  8. POJ1236 Network of Schools
  9. iphone如何信任软件_苹果企业开发者证书成漏洞 盗版商发布破解版iPhone应用
  10. 10-20-030-简介-Kafka Briker IO
  11. 去中心化存储项目Sia计划于2月初启动Sia基金会
  12. 计算机教室简笔画图片大全集,教室场景画简笔画图片精选
  13. 未来计算机源消能耗,磁微处理器挑战计算机最低能耗极限
  14. 时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
  15. 服务器系统和操作系统有什么区别
  16. 《计算机操作系统(计算机)》
  17. 一文读懂三种并发控制机制(封锁、时间戳、有效性确认,大量例子+证明)
  18. 关于Hex文件的解析和修改应用
  19. python收益风险点图_使用python matploblib库绘制准确率,损失率折线图
  20. jmeter配置原件

热门文章

  1. mysql退出当前数据库,再次 show databases
  2. asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
  3. Cocos2d中使用颜色混合:加算,减算
  4. 中国九章量子计算机诞生!比最快的超算快一百万亿倍
  5. 浙大团队研发铜基沸石纱布口罩,1分钟杀灭新冠病毒逾99%
  6. 疫情加速人脸识别落地:多地试点AI门禁,居民刷脸核验健康码
  7. VC++ MFC DLL动态链接库编写详解
  8. centos6.8 yum mysql7_Centos6.8通过yum安装mysql5.7
  9. java.lang.IllegalStateException: 启动子级时出错
  10. JDK1.8中的HashMap,HashTable,ConcurrentHashMap有什么区别?