本文于 13 天前发布,最后更新于 10 天前
一、find命令
find查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用,您可以通过权限,用户,组,文件类型,日期,大小等可能的条件查找文件。
语法
find pathname -option [-print] [-exec|-ok command] {} \;
二、几种使用场景
2.1 查找指定日期内修改的文件
[root@dameng ~]# find . -type f -newermt "2024-04-24 00:00:00" ! -newermt "2024-04-24 16:24"
./filelist.txt
./boot.svg
./.cache/abrt/lastnotification
./.bash_history
./retention-list.txt
./linuxscript/newfile.sh
./linuxscript/firewall-audit
./linuxscript/~ip.txt
./linuxscript/qmql/file6
./linuxscript/qmql/file2
./linuxscript/qmql/danshu.tar
./linuxscript/qmql/shuangshu.tar
./linuxscript/qmql/file8
./linuxscript/qmql/file4
!
表示反转其后的表达式,即可表示2024-04-24 00:00:00之后,并2024-04-24 16:24之前,便可构造出一个时间范围。
验证
[root@dameng ~]# stat ./boot.svg
File: ‘./boot.svg’
Size: 113395 Blocks: 224 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 393677 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-04-24 15:17:56.135752543 +0800
Modify: 2024-04-24 15:17:42.901674989 +0800
Change: 2024-04-24 15:17:42.901674989 +0800
Birth: -
2.2 查找指定大小的文件
查找大于 20M 小于 30M 的文件
[root@dameng ~]# find / -xdev -size +20M -size -30M -type f -print0 | xargs -0 ls -Ssh1 --color
29M /opt/dmdbms/drivers/dpi/libdmdpi.a
29M /opt/dmdbms/include/libdmdpi.a
29M /home/wwwlogs/access.log
29M /usr/libexec/gcc/x86_64-redhat-linux/8/cc1plus
28M /root/latest-zh_CN.zip
28M /usr/local/mysql/var/wordpress/wp_posts.ibd
27M /usr/libexec/gcc/x86_64-redhat-linux/8/cc1
27M /opt/rh/gcc-toolset-10/root/usr/libexec/gcc/x86_64-redhat-linux/10/cc1plus
27M /opt/rh/gcc-toolset-10/root/usr/libexec/gcc/x86_64-redhat-linux/10/f951
26M /usr/lib64/libicudata.so.60.3
26M /usr/libexec/gcc/x86_64-redhat-linux/8/lto1
25M /opt/rh/gcc-toolset-10/root/usr/libexec/gcc/x86_64-redhat-linux/10/cc1
25M /boot/initramfs-4.18.0-348.7.1.el8_5.x86_64.img
25M /boot/initramfs-4.18.0-193.el8.x86_64.img
25M /usr/lib64/dri/iris_dri.so
25M /usr/lib64/dri/kms_swrast_dri.so
25M /usr/lib64/dri/nouveau_dri.so
25M /usr/lib64/dri/r600_dri.so
25M /usr/lib64/dri/radeonsi_dri.so
25M /usr/lib64/dri/swrast_dri.so
25M /usr/lib64/dri/virtio_gpu_dri.so
25M /usr/lib64/dri/vmwgfx_dri.so
24M /opt/rh/gcc-toolset-10/root/usr/libexec/gcc/x86_64-redhat-linux/10/lto1
23M /usr/lib64/libmozjs-60.so.0.0.0
21M /usr/local/lib/libMagickCore-7.Q16HDRI.so.10.0.2
21M /usr/local/php/include/php/ext/ImageMagick-7.1.1-41/MagickCore/.libs/libMagickCore-7.Q16HDRI.so.10.0.2
21M /root/lnmp2.1/src/mysql-5.5.62.tar.gz
21M /usr/local/mysql/lib/libmysqlclient.a
如图
2.3 查找并删除
删除 home 目录下180天以前的文件
find /home -mtime +180 -type f | xargs /bin/rm -rf
2.4 按文件内容查找
查找文件内容中包含某字符串的文件,打印出文件名
find .|xargs grep -ri "192.168.3.33" -l
find .|xargs grep -ri "lemonary.cn" -l