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

linux-find

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

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

常用参数:

find命令 – 根据路径和条件搜索指定文件_第1张图片

参考示例

全盘搜索系统中所有以.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

在/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
………………省略部分输出信息………………

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

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

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

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

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

[root@linuxcool ~]# find / -name "*.mp4" -exec rm -rf {} \;

你可能感兴趣的:(嵌入式Linux开发工程师课程,linux,shell,bash,find)