首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程小短文:find,让你随心所欲查找整块磁盘的任意文件

引言

我们都知道Linux操作系统,一般没有标配桌面窗口。使用 Bash 与操作系统对话。同时,Linux 操作系统,秉持了UNIX操作系统的“一切皆文件”的哲学思想,把各种类型的数据归纳为文件。

那么对于文件数量庞大的 Linux 系统如何快速高效的索引出我们需要查找的对象?这就体现出系统管理的效率水平。

今天我们给大家介绍这个指令——find。无论你是做系统管理或者编写 Bash 脚本文件,它都会是出现频次很高的那个。

用法

下面这个是基本的用法,根据文件名查找。

find -name index.php

还可以对文件名大小写不敏感进行筛选。

find -iname readme.txt

我们还可以根据文件类型进行筛选。下面是几个常用的文件类型标识符。

c: 字符设备

d: 目录

f: 常规文件

l: 符号链接

比如根据文件的扩展名查找普通文件。

find / -type f -name "*.log"

也可以根据文件的大小进行筛选。其中文件大小所支持的语义化单位有 c, k, M, G,就是我们常用的单位。

比如查找文件体积大于 1G,且后缀名为mp4的文件。

find / -type f -name "*.mp4" +1G

加号表示大于,相对应的,减号表示小于。

find / -type f -name "*.mp4" -20M

对于文件还有三个属性特别重要,就是

atime 最近访问时间

mtime 最近修改时间

ctime 最近状态更改时间

比如查找最近一周更改过的文件:

find / -atime -7

比如查找最近一天有过修改的文件:

find / -mtime -1

组装起来

下面我们就把上一节所学的筛选项组合起来,形成功能强大的一行代码。

比如服务器上有许多日志文件,我们把那些7天之内没有过修改的,筛选出来,并执行删除。

find /tmp -type f -name "*.log" -mtime +7 -exec rm -f {} \;

写在最后

系统管理的利器,你值得拥有,赶紧实践起来吧。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200526A0QC9A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券