find命令 - 根据路径和条件搜索指定文件

ID:15649 / 打印

find命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员必须掌握的命令之一。

find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate等有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,这会相对消耗较多的系统资源。

语法格式:find 路径 条件 文件名

常用参数

-name匹配文件名 -nouser匹配无所属主的文件
-perm匹配文件权限-nogroup匹配无所属组的文件
-user匹配文件所属主-newer匹配比指定文件更新的文件
-group匹配文件所属组-type匹配文件类型
-mtime匹配最后修改文件内容时间-size匹配文件大小
-atime匹配最后读取文件内容时间-prune不搜索指定目录
-ctime匹配最后修改文件属性时间-exec…… {}\;进一步处理搜索结果

参考示例

全盘搜索系统中所有以.conf结尾的文件:

[root@linuxcool ~]# find / -name *.conf  /run/tmpfiles.d/kmod.conf  /etc/resolv.conf  /etc/dnf/dnf.conf  /etc/dnf/plugins/copr.conf  /etc/dnf/plugins/debuginfo-install.conf  /etc/dnf/plugins/product-id.conf  /etc/dnf/plugins/subscription-manager.conf  ………………省略部分输出信息……………… 

在/etc目录中搜索所有大于1MB的文件:

[root@linuxcool ~]# find /etc -size +1M  /etc/selinux/targeted/policy/policy.31  /etc/udev/hwdb.bin

在/home目录中搜索所有属于指定用户的文件:

[root@linuxcool ~]# find /home -user linuxprobe  /home/linuxprobe  /home/linuxprobe/.mozilla  /home/linuxprobe/.mozilla/extensions  /home/linuxprobe/.mozilla/plugins  /home/linuxprobe/.bash_logout  /home/linuxprobe/.bash_profile  /home/linuxprobe/.bashrc 

列出当前工作目录中的所有文件、目录以及子文件信息:

[root@linuxcool ~]# find . .  ./.bash_logout  ./.bash_profile  ./.bashrc  ./.cshrc  ./.tcshrc  ./anaconda-ks.cfg  ………………省略部分输出信息……………… 

在/var/log目录下搜索所有指定后缀的文件:

[root@linuxcool ~]# find /var/log -name "*.log"  /var/log/audit/audit.log  /var/log/rhsm/rhsmcertd.log  /var/log/rhsm/rhsm.log  /var/log/sssd/sssd.log  /var/log/sssd/sssd_implicit_files.log  /var/log/sssd/sssd_nss.log  /var/log/sssd/sssd_kcm.log  /var/log/tuned/tuned.log  /var/log/anaconda/anaconda.log  /var/log/anaconda/X.log  ………………省略部分输出信息……………… 

在/var/log目录下搜索所有不是以.log结尾的文件:

[root@linuxcool ~]# find /var/log ! -name "*.log"  /var/log  /var/log/lastlog  /var/log/README  /var/log/private  /var/log/wtmp  /var/log/btmp  /var/log/samba

搜索当前工作目录中所有近7天被修改过的文件:

[root@linuxcool ~]# find . -mtime +7  ./.bash_logout  ./.bash_profile  ./.bashrc ./.cshrc  ./.tcshrc  ………………省略部分输出信息……………… 

全盘搜索系统中所有类型为目录,且权限为1777的目录文件:

[root@linuxcool ~]# find / -type d -perm 1777 /dev/mqueue /dev/shm /var/tmp /tmp ………………省略部分输出信息………………

全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:

[root@linuxcool ~]# find / -type f -perm /a=x  /boot/vmlinuz-4.18.0-80.el8.x86_64 /boot/vmlinuz-0-rescue-c8b04558503242459d908c6c22a2d481 /etc/X11/xinit/xinitrc.d/50-systemd-user.sh /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh /etc/X11/xinit/xinitrc.d/localuser.sh /etc/X11/xinit/Xclients /etc/X11/xinit/Xsession /etc/X11/xinit/xinitrc ………………省略部分输出信息………………

全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:

[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} \;
上一篇: crontab命令 - 管理定时计划任务
下一篇: rpm命令 - RPM软件包管理器

作者:admin @ 24资源网   2024-10-23

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。