find命令 - 根据路径和条件搜索指定文件
2024-01-09 本站作者 【 字体:大 中 小 】
find命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员日常工作必须掌握的命令之一。
find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。
语法格式:find [路径] [条件] 文件名
常用参数:
-name | 匹配文件名 |
-perm | 匹配文件权限 |
-user | 匹配文件所属主 |
-group | 匹配文件所属组 |
-mtime | 匹配最后修改文件内容时间 |
-atime | 匹配最后读取文件内容时间 |
-ctime | 匹配最后修改文件属性时间 |
-nouser | 匹配无所属主的文件 |
-nogroup | 匹配无所属组的文件 |
-newer | 匹配比指定文件更新的文件 |
-type | 匹配文件类型 |
-size | 匹配文件大小 |
-prune | 不搜索指定目录 |
-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目录中搜索所有大于1M大小的文件:
[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 -iname "*.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 {} \;
与该功能相关的Linux命令:
- rwho命令 – 查看系统用户
- ssh-add命令 – agent的高速缓存
- modinfo命令 – 显示kernel模块的信息
- logwatch命令 – 遍历系统日志
- whoami命令 – 显示当前用户名
- sysctl命令 – 配置系统内核参数
- time命令 – 指令执行时所消耗的时间
- ssh-agent命令 – ssh密钥管理器
- lilo命令 – 安装核心载入
- ssh-copy-id命令 – 复制SSH公钥到远程主机
猜你喜欢
oppoa5突然卡住了怎么办
苹果id账号申请
手机怎么无线连接电脑
女儿月薪4000,买了4000多的手机。
华为电脑如何分屏
睡前总喜欢玩手机的人:用不了多久,你可能就有“ ”4的问题了!
怎么用手机视频播放器来加速或快速播放?
小米14相比华为Mate60是标准版。你会选择谁?
微信好友如何批量删除(微信怎么批量删除好友)
忘了拔充电器烧了房子?中国消防:收费是一件马虎的事情。
华为哪款手机玩游戏性能最好
扩音器什么品牌音质最好(哪个品牌的扩音器音质最佳?)
铠侠固态硬盘怎么样(铠侠固态硬盘的表现如何?)
公认最静音的电风扇(国内10大电风扇品牌排行)
光信号闪红灯会自己好吗(路由器闪红灯是怎么回事)
联想k29为什么是神机(联想k29怎么样)
国内冰箱排名前十的品牌(质量最好的10大冰箱品牌)
凯夫拉手机壳怎么样(凯夫拉手机壳的表现如何?)
键盘突然没反应是怎么回事
垃圾处理器有必要买吗(垃圾处理器值得买吗)