***Linux文件查找命令find***

本文详细介绍了Linux系统中的find命令,包括其优势、基本用法和多种参数选项。find命令可以根据时间、用户、权限、文件类型等多种条件查找文件。例如,-mtime选项用于根据文件内容更改的时间进行查找,-user和-group用于根据所有者和组查找,-newer用于比较文件更改时间。此外,还探讨了与文件大小和特殊权限(如SUID、SGID)相关的参数。文章通过多个实例展示了如何使用find命令查找特定类型的文件,如Socket文件,以及如何结合其他命令如ls -l进行操作。同时,文章提到了find命令的-exec选项,允许在找到文件后执行额外的命令。最后,文章给出了多个实用的find命令示例,如查找特定权限的文件、删除过期文件等。
摘要由CSDN通过智能技术生成

 前言:关于find命令

优劣对比常用的grep只能通过文本内容过滤(行)查找文件,而locate 数据库【依据/var/lib/mlocate内的数据库记载,找出使用者输入的关键字档名】查找却是模糊匹配,将指定的字符串跟整个路径进行匹配  -i 忽略大小写 -n N 只显示匹配到的前N个文件。而此时find命令则体现出其强大之处。

由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令【它是搜索硬盘来查找文件】在该文件系统中同样有效,只要你具有相应的权限。

 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

一。find命令的一般形式为:

find [PATH] [option] [action]

二。find命令的参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{}和\;之间的空格
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

三。find命令选项:

1.与时间有关的选项,共有-atime,-ctime与-mtime【-atime表示的是访问时间;-ctime表示被改变文件状态的时间;-mtime表示被修改文件内容的时间】,以-mtime说明

     -mtime n:n为数字,意思是在n天之前的【一天之内】被更改过内容的文件;

     -mtime +n:列出在n天之前(不含n天本身)被更改过内容的文档名;

     -mtime -n:列出在n天之内(含n天本身)被更改过内容的文档名;

另外需要区别以下内容:

   -amin n
  查找系统中最后N分钟访问的文件

  -atime n
  查找系统中最后n*24小时访问的文件
  -cmin n
  查找系统中最后N分钟被改变文件状态的文件

  -ctime n
  查找系统中最后n*24小时被改变文件状态的文件
    -mmin n
  查找系统中最后N分钟被改变文件数据的文件

  -mtime n
  查找系统中最后n*24小时被改变文件数据的文件

如果我想要找出『4天内被更动过的文件档名』,那可以使用『find /var -mtime -4 』。那如果是『4天前的那一天』就用『find /var -mtime 4

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

  • +4代表大于等于5天前的档名: find /var -mtime +4
  • -4代表小于等于4天内的文件档名:find /var -mtime -4
  • 4则是代表4-5那一天的文件档名: find /var -mtime 4

范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的文件列出

[root@www ~]# find / -mtime 0
# 那个 0 是重点!0 代表目前的时间,所以,从现在开始到 24 小时前,也就是24小时之内
# 有变动过内容的文件都会被列出来!那如果是三天前的 24 小时内?
# find / -mtime 3 有变动过的文件都被列出的意思!

范例二:寻找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出
[root@www ~]# find /etc -newer /etc/passwd
# -newer 用在分辨两个文件之间的新旧关系是很有用的!

#find -newer apache-maven-2.2.1-bin.tar.gz  ! -newer status.sh -ls【查找更改时间比文件apache-maven-2.2.1-bin.tar.gz新但比文件status.sh旧的文件

8393137    4 drwxr-xr-x   3 root     root         4096 Oct 18 15:19 .
8392815    4 -rw-r--r--   1 root     root          164 Oct 18 15:19 ./status.sh
8392814    4 -rw-r--r--   1 root     root          164 Oct 18 15:18 ./1
8196333 62300 -rwxr-xr-x   1 root     root     63724381 Jun 30 17:51 ./jdk-6u5-linux-x64.bin
8393838 24388 -rw-r--r--   1 root     root     24942637 Jul 11 16:59 ./jetty-6.1.14-fgw-aps.zip
8392811    8 -rw-r--r--   1 root     root         7167 Sep  9 03:26 ./cpsapplist.prop
8393836 5788 -rw-r--r--   1 root     root      5910895 Apr  3  2011 ./jetty-distribution-7.3.0.v20110203.zip
8196335 47744 -rw-r--r--   1 root     root     48835553 Jun 30 17:51 ./moni2.tar.gz
8422513 6760 -rw-r--r--   1 root     root      6908320 Jun 30 17:51 ./apache-tomcat-6.0.30.zip
8393141    4 drwxr-xr-x   2 root     root         4096 Jul  5 10:45 ./apache-tomcat-6.0.30

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值