Linux-搜索命令(一)

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

在Windows里面搜索一般是基于文件名字的搜索,但是在Linux里面搜索主要分两种,一种是以文件&目录为搜索为目的的搜索,主要涉及到的命令是findlocate。另外一种是以文件里面的内容为目的的搜索,涉及到的命令就是grepegrep

主要从以下两个方面来介绍:

1.文件搜索(本章节)

2.内容搜索

find 命令是用于在 Unix 和类 Unix 系统上搜索文件和目录的工具。它允许用户按照各种条件查找文件,并执行相关操作。find 命令的基本语法如下所示:

css 复制代码
find [search_dir] [options] [expression]

其中:

  • search_dir 表示要搜索的目录路径。
  • options 是一些用于指定搜索条件和方式的选项。
  • expression 指定了 find 命令执行的操作,比如 -exec 可以对查找到的文件执行特定的命令。

以下是一些常用的 find 命令选项和示例:

查找文件

arduino 复制代码
find /path/to/search -iname "filename"  // -iname 忽略大小写

该命令将在 /path/to/search 目录及其子目录中查找文件名为 "filename" 的文件。

按类型查找

bash 复制代码
find /path/to/search -type f  //f代表文件,d代表目录

该命令将查找 /path/to/search 目录中的所有文件。

按大小查找

arduino 复制代码
find /path/to/search -size +100M

这将查找 /path/to/search 目录中大小大于 100MB 的文件。

按修改时间查找

lua 复制代码
find /path/to/search -mtime +10

这将查找 /path/to/search 目录中最后修改时间大于10天的文件。

组合条件

lua 复制代码
find /path/to/search -type f -name "*.txt" -o -name "*.md"  //如果没有-o参数则必须同时

这个示例将查找 /path/to/search 目录中所有的 .txt 或者 .md 文件。

对搜索结果进行操作

lua 复制代码
find /path/to/search -type f -mtime +30 -delete

这个示例将查找 /path/to/search 目录中所有的文件,并且修改时间大于30天进行删除。

总结

find 在实际运维过程中,就是搜索文件,但是在使用的时候,需要注意范围,尤其是以根目录"/" 为搜索条件的

其次find命令经常和其他命令配合一起操作,比如删除大于多少天的日志文件,甚至可以用于批量改名

locate 命令用于在系统上快速定位文件。它通过查询系统中维护的文件名数据库来实现高效的文件查找,而不是像 find 命令一样实时搜索文件系统。这使得 locate 命令在需要快速查找文件时非常高效。

以下是 locate 命令的基本格式:

css 复制代码
locate [OPTION]... PATTERN...
  • PATTERN 表示你要查找的文件名模式,比如 *.txt,可以用通配符来进行匹配。
  • OPTIONS 包括一些标志,比如 -i 表示查找时不区分大小写,-c 表示只计数匹配的文件数量等等。

注意:locate 命令搜索的是文件名而不是文件内容。该命令使用系统中维护的索引数据库,因此可能会错过最近被创建或修改的文件,除非你定期更新数据库。

通常情况下,你可以使用以下命令来更新 locate 的数据库:

复制代码
updatedb

这会强制更新文件名数据库,以便 locate 命令可以查找到最新的文件信息。

总的来说,locate 是一个非常高效的文件查找工具,可以快速定位符合特定模式的文件,并且在大多数Unix和类Unix系统上都可以使用。

总结

locate在默认最小化安装的系统是不会自带的,需要额外安装,在mlocate包里面。

另外安装该包以后,系统会自动创建一个定时任务,该任务每天执行一次,用于更新数据库。

基础知识:任务计划,Linux系统默认有几个目录(天,小时,周,月)等目录,这里面的文件,就会按照对应的目录规则进行执行,这个也是后面会涉及到的任务计划内容。

关注微信公众号《运维小路》获取更多内容。

相关推荐
сокол14 分钟前
【网安-Web渗透测试-靶场系列】AWD-Platform(ctf-hub)
linux·服务器·ubuntu·网络安全·docker
程序猿追17 分钟前
我搭了个网页工具:输入关键词,SERP API 自动吐出比价 Excel
后端
Lee川19 分钟前
RAG 实战:从一篇掘金文章出发,拆解检索增强生成的全链路
前端·人工智能·后端
Lee川32 分钟前
MCP 高德地图实战:当 AI 学会使用工具,一个协议如何重塑大模型的行动边界
前端·人工智能·后端
楼田莉子43 分钟前
C++17新特性:__had_include/属性/求值顺序规则
开发语言·c++·后端
utf8mb4安全女神1 小时前
Linux系统服务相关命令【定时任务设置】【任务进程管理】【防火墙区域应用】
linux·运维·服务器
凯丨1 小时前
Claude Code 自动化开发的完整体系
运维·自动化
程序员cxuan1 小时前
Codex 把我家烂网给优化后,我 TM 直接原地起飞了。
人工智能·后端·程序员
IT_陈寒1 小时前
Redis批量删除踩了坑,原来DEL命令不是万能的
前端·人工智能·后端
叫我少年2 小时前
C# 命名空间与 using 指令 — 文件范围、全局导入、别名
后端