inux系统管理这里面有个find命令,它是定位文件的厉害工具,功能强大,它的参数还特别丰富。不管是依据这些来搜索,名称、类型、时间或者大小,它都能够高效地去完成任务。掌握find命令,这不仅能够提升日常工作效率,更关键的是它还是解决复杂文件定位问题的核心技能。本文将会深入地讲解find命令最实用、最高频的几种用法 。
find命令的基本语法是什么
查找命令的标准语法是 查找 [路径] [表达式],路径规定搜索的起始目录,这可以是绝对路径跟相对路径的其中一种,要是予以省略那就默认由当前目录起始 ,表达式则界定了搜索的条件以及动作,它是由一系列选项、测试条件以及操作符所构成的,这些共同决定了查找命令的行为 !

明白此类结构乃是机动运用find的根基,举例来说,find /home -name "<strong>.txt"意味着于/home目录其中,寻觅全部以.txt作结的文件,当中/home为路径,-name "</strong>.txt"是表达式部分里的一项测试条件,你能够将多个条件予以组合,借由逻辑操作符达成更为精准的筛选,。
如何使用find命令按名称查找文件
以名称来进行查找属于最为常见的那种需求,主要采用的是 -name 以及 -iname 这两个选项, -name 后面紧接着文件名模式,它是区分大小写情况的,比如说, find . -name "config.ini" 这样的指令会在当下目录以及其下面的子目录里精准地去查找那个名为config.ini的文件,模式对于通配符是予以支持的,其中 <strong> 表示任意数量的字符, ? 表示单个字符 。

倘若你期望开展不区分大小写的搜索,那么能够运用 -iname 选项。这于文件名大小写不规范的环境当中十分具备效用。举例来说,find /var/log -iname "</strong>.log" 会找寻到所有后缀是.log的文件,不管其为大写(.LOG)抑或是小写(.log)。要牢记,通配符必须借助引号予以括起来,以此避免被shell提前进行解释。
如何使用find命令按类型查找文件
Linux状态下所有事物皆属文件范畴,对文件类型予以区分极具重要性。 -type这一选项是专门用以依据类型来展开筛选操作的。较为常用的类型标识符涵盖有:f标记着普通文件,d标记的是目录,l标记的为符号链接。举例来说,find /tmp -type f 此指令能够找寻到/tmp目录里全部的普通文件,并且会将目录以及链接予以忽略 。

在清理目录之际,或者于分析目录结构之时,这功能颇为实用可焉。假定你欲找出某项目目录下的所有子目录,便能够运用 find /myproject -type d 。与其他条件相结合,像查找所有命名为“backup”的目录情形下:find / -type d -name "backup" 2>/dev/null 。此处的 2>/dev/null 乃是用于将权限错误信息予以屏蔽掉,从而使得输出更为清晰明了 。
如何使用find命令按时间查找文件
执行按时间查找的操作,这对于日志轮转以及清理旧文件等运维相关任务而言,是具有至关重要的意义的。其主要存在的选项包含 -mtime(此为修改时间),还有 -atime(即访问时间)以及 -ctime(也就是状态改变时间)。这里的时间参数是以“天”作为度量单位的,其中 +n 的含义代表的是n天以前linux的find命令用法,而 -n 所表示的为n天以内linux的find命令用法,n 表示的恰恰是正好第n天 。
比如说,find /var/log -mtime +7 这个指令,它能够去查找那些已经超过了7天时间学linux有前途吗,并且没有被修改过的日志文件。然而,find /home -atime -1 这个情况呢,它是在查找一天之内有过被访问动作的文件。要是想要进行更为精细的控制,那就可以使用 -mmin、-amin 等以“分钟”作为单位的选项。就好比 find /tmp -mmin -30 这样,它是在查找最近30分钟之内有过被修改行为的文件,通常是被用于监控临时目录的实时变化情况。

如何使用find命令按大小查找文件
借助 -size 选项来查找特定大小的文件,其参数格式呈现为 [+/-]n[单位] 的样子,单位常是以 c(字节)、k(千字节)、M(兆字节)、G(千兆字节)来表示,其中 +n 意味着大于n,-n 意味着小于n,而没有符号则表示精确等于n。
有一种典型应用是去查找并且清理那些过大的临时文件或者日志,find /var -size +100M 能够找出在 /var 目录之下所有大于 100MB 的文件。要是想要查找小于 10KB 的配置文件,那么可以使用 find /etc -type f -size -10k。需要注意的是,这种查找是依据文件所占用的磁盘块大小,可能会与 ls -l 所显示的字节数存在略微的差异,不过这足以满足大多数的管理需求。
如何用find命令结合其他命令处理查找结果

发现真正具备的强大效能在于其“-exec”以及“-ok”选项,能够把查找而得的结果当作参数传递给别的命令去执行操作。其格式是“-exec command {} ;”,这里面“ {} ”代表查找出来的每一个文件linux教程,“;”意味着命令终止。举例来说,“find . -name \”.tmp\” -exec rm {} ;”会把当前目录下全部的.tmp临时文件给删除掉 。
-ok跟-exec功能相近,然而它在执行每一个命令之前,会以交互式的方式去询问用户是不是确认,相对更具安全性。对于批量去更改文件权限或者所有权而言,也是极为有用的:find /home/shared -type f -exec chmod 644 {} ;。在此之外,还能够将xargs命令予以结合,比如说 find . -name "</strong>.c" | xargs grep -l "main",如此便可以高效率地于全部C源代码文件当中搜寻包含“main”这个字符串的文件 。
于日常工作里头,你最为频繁动用find命令的哪一项选项或者组合,去处理啥状况?欢迎在评论的区域分享你的经验以及技巧。要是觉着本文具备实用价值,请点赞并且分享给更多有需求的小伙伴。
