本文于 116 天前发布,最后更新于 113 天前
一、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