find 的参数详解及实例

find 的参数详解及实例

欢迎来到 来到大浪涛天的博客

find 的参数详解及实例

1. 功能说明

find 命令用于查找目录下的文件,同时也可以调用其他命令来执行相对应的操作。

2. 语法格式

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
     [选项]                                   [路径]    [操作语句]
       如何处理符号链接                                 option tests actions
                                                        参数   限定的条件   执行的动作

3. 选项参数

pathname 命令所查找的目录路径
options 模块
-depth  从指定目录下最深层的子目录开始查找
-maxdepth levels 查找的最大目录级数,levels为自然数
-regextype type  改变正则表达式的模式,默认为emacs
tests 模块
-mtime [-n|n|+n] 按照文件的修改时间来查找文件(-n 文件更改距离现在n天以内,+n表示文件更改时间距离现在n天以前,n是距离现在第n天)
-atime [-n|n|+n]  按照文件的访问时间来查找文件
-ctime [-n|n|+n]  按照文件的状态改变时间来查找文件
-amin 按照文件的访问时间来查文件,单位为分钟
-cmin 按照文件的状态时间改变来查找文件,单位为分钟
-mmin  按照文件的状态修改时间来查找文件,单位为分钟
-group 按照文件属主来查找文件
-name  按照文件名来查找文件,只支持*,?,[]等特殊通配符
-newer 查找更改时间比指定文件新的文件
-nogroup 查找没有有效用户组的文件,即/etc/group中不存在
-nouser  查找没有有效属主的文件,即/etc/passwd中不存在
-path pattern 指定路径样式
-perm   按照文件权限来查找文件
-regex  按照正则表达式
-iregex  接正则表达式,不区分大小写
-size n[cwbkmg] 查找文件长度为n块的文件
-user   按照文件属主来查找文件
-type 模块
b 块设备
c 字符设备
d 目录
p 管道文件
l 符号链接文件
f 普通文件
s socket文件
D door
actions模块
-delete  将查找出的文件删除
-exec 对匹配的文件执行该参数所给出的shell命令
-ok  和-exec作用相同,但在执行每个命令之前,都会让用户先确定
-prune 使用这一选项可以使find命令不在当前指定目录中查找
-print 将匹配的文件输出到标准输出
!  取反
-a  取交集
-o  取并集

4. 实例

  1. 查找指定时间内修改过的文件

find . -atime -2 代表当前目录,查找两天内受到访问的文件

find /data/ -mtime -5使用绝对路径/data,查找5天内修改的文件
2. find 查找时间说明

+4    4      -4
+4天以前文件更改时间
4 表示距离现在第4天
-4 表示表示4天内修改的文件
  1. 用name指定关键字查找
find /var/log -mtime +5 -name '*.log'
在/var/log目录下查找5天前以log结尾的文件
  1. 用 !反向查找
find . -type d 
按类型查找,查找当前目录下的所有目录
find . ! -typf d
表示取反,当前非目录文件,注意!位置
  1. 按照目录或文件的权限来查找文件
find /data/ -perm 755
按照文件权限来查找文件,755权限的
  1. 按大小来查找文件
find -size +1000c
查找当前目录下文件大小大于1000字节的文件
  1. 查找文件时希望忽略某个目录
find /data -path "/data/dir3" -a -prune -o -print
-a &&  -o ||,当-path "/data/dir3"为真时,执行-prune,为假的话执行print。
  1. 忽略多个目录
find ~/oldboy ( -path ~/oldboy/ac -o -path ~/oldboy/bc  ) -a -prune -o -print
注意 圆括号前面要加转义,且左括号和右或者和中间的字符必须要有空格
  1. 使用user和nouser和group,nogroup选项
find . -user nobody
find . -nouser
find . -group nobody
find . -nogroup
  1. 查找比某个文件新或旧的文件
find . -newer file8 ! -newer file4   隐藏-a参数 与
find . -newer file8 -o ! -newer file4 或运算
查找比file8新但是比file4旧的文件
查找比file8新的文件或比file4旧的文件
  1. 逻辑操作符使用
find . -maxdepth 1 -type d 
find /etc -maxdepth 1 -type d ! -name "."
find /etc -maxdepth 1 -type d ! -name "." -o  -name "fstab"
find /etc -maxdepth 1 -type d ! -name "." -a  -name "fonts"
原文地址:https://www.cnblogs.com/chacha51/p/13764884.html