01.find命令介绍

**更多详细内容参考:**https://www.cnblogs.com/xiaonq/p/11969744.html

1.1 find作用

  1. Linux find命令用来在指定目录下查找文件。
  2. 任何位于参数之前的字符串都将被视为欲查找的目录名。
  3. 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。

1.2 find常用参数

选项 含义
-name 根据文件名称查找
-size -n +n 根据文件大小查找
-mtime -n 根据文件修改时间查找
-type 根据文件类型查找
-perm 根据文件权限查找

1.3 find参数基本使用

#1. -name(根据文件名查找)
find /etc -name '*.conf'      # 查找 /etc 目录下以 conf 结尾的文件

#2. -size(根据文件大小查询)
find . -size +9M              # 查找当前文件夹下大于9M的文件
find . -size -1M              # 查找当前文件夹下小于1M的文件

#3.1 -mtime(根据天查询)
find /etc -mtime -5 -name '*.conf'          # 查询 /etc 目录下,5天以内修改 且以 conf 结尾的文件
find /etc -mtime +5 -name '*.conf'          # 查询 /etc 目录下,5天以内修改 且以 conf 结尾的文件
#3.2 -mmin(根据分钟查询)
find /etc -mmin +30                         # 查询 /etc 目录下 30分钟 之前修改过的文件
find /etc -mmin -30                         # 查询 /etc 目录下 30分钟 之内修改过的文件

#4. -type(根据类型查找)
find . -type f                              # 查找当前文件夹下所有文件
find . -type d                              # 查找当前文件夹下所有目录

#5. -user(根据文件所有者查询)
find . -user yangyang                       # 查找文件所属用户为 yangyang 的所有文件

#6. -group(根据文件所属组查询)
find . -group yangyang                      # 查找文件所属组为 yangyang 的所有文件

#7. -perm(根据权限查询)
find /etc -perm 664                         # 查找/etc目录下权限为664的文件

02.find应用

2.1 大于9M的文件

  • 1. find . -size +9M | xargs ls -lh : 查找当前目录下大于9M的文件详细信息
[root@linux-node1 /]# find . -size +9M | xargs ls -lh
-rw-r--r--  1 root root  24M Jul  7 04:18 ./aaa/Python-3.7.0/libpython3.7m.a
-rwxr-xr-x  1 root root  14M Jul  7 04:19 ./aaa/Python-3.7.0/Programs/_testembed
-rwxr-xr-x  1 root root  14M Jul  7 04:18 ./aaa/Python-3.7.0/python
-rw-r--r--  1 root root  22M Jul  6 23:53 ./aaa/Python-3.7.0.tgz
-rw-------. 1 root root  47M Jan  7  2019 ./boot/initramfs-0-rescue-8b956f09fe0549c4b6182589acceab30.img
-rw-------. 1 root root  21M Jan  7  2019 ./boot/initramfs-3.10.0-514.el7.x86_64.img
-rw-------. 1 root root  14M Jan  7  2019 ./boot/initramfs-3.10.0-514.el7.x86_64kdump.img

2.2 以 .log 结尾且大于5M的文件

  • 2. find . -type f -name “*.log” -size +1M -exec cp -av {} /tmp ;
  • 查找当前目录下以 .log 结尾且大于5M的文件,并复制到/tmp目录下
[root@linux-node1 /]# find . -type f -name "*.log" -size +1M -exec cp -av {} /tmp \;
cp:./tmp/audit.log’ and/tmp/audit.log’ are the same file
cp:./tmp/journal.log’ and/tmp/journal.log’ are the same file

2.3 更改时间在三天到五天的文件

  • 3. find /var -mtime +3 -mtime -5 :在/var下查找更改时间在三天到五天的文件
[root@linux-node1 /]# find /var -mtime +3 -mtime -5
/var/tmp
/var/lib/yum/yumdb/l
/var/lib/yum/yumdb/l/f20daac8f6b3893e42be72af22a5118848f

2.4 1分钟前3分钟内修改的文件

  • 4. find . -mmin +1 -mmin -3 :查找当前文件夹下1分钟前3分钟内修改的文件
[root@linux-node1 /]# find . -mmin +1 -mmin -3
./aa.py

__END__