Linux搜索查找类指令

devtools/2025/2/26 15:15:30/

1、find指令

基本语法:find [搜索范围] [选项]

功能:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。

常用选项:

操作

命令示例

说明

查找指定路径下的所有文件

find /path/to/dir

查找指定目录下的所有文件和目录。

查找指定名称的文件

find /path/to/dir -name "filename"

查找指定名称的文件(支持通配符)。例如:find . -name "*.txt"

查找所有.txt文件。

查找指定类型的文件

find /path/to/dir -type f

查找所有普通文件。-type d查找目录,-type l查找符号链接。

查找修改时间在指定范围内的文件

find /path/to/dir -mtime +7

查找修改时间超过 7 天的文件。-mtime -7查找修改时间在过去 7 天内的文件。

查找文件大小符合条件的文件

find /path/to/dir -size +100M

查找大小大于 100MB 的文件。+

表示大于,-表示小于,c表示字节,k表示 KB,M表示 MB。

查找并执行命令

find /path/to/dir -name "*.log" -exec rm {} \;

查找.log文件并删除。{}是每个匹配的文件,\;表示命令结束。

查找符合条件并显示详细信息

find /path/to/dir -name "*.txt" -exec ls -l {} \;

查找.txt文件并显示详细信息。

查找目录并排除特定目录

find /path/to/dir -type d ! -name "exclude_dir"

查找目录,排除名为exclude_dir的目录。

查找具有特定权限的文件

find /path/to/dir -perm 644

查找权限为 644 的文件。

查找大于特定大小的文件

find /path/to/dir -size +100M

查找文件大小大于 100MB 的文件。

查找符合多个条件的文件

find /path/to/dir -name "*.txt" -size +1M

查找.txt文件且大小大于 1MB 的文件。

查找并显示文件的 inode 号

find /path/to/dir -name "*.log" -printf "%i %p\n"

查找.log文件并显示文件的 inode 号和路径。

 

  • -name:按文件名进行匹配,可以使用通配符(如 *)。
  • -type:按文件类型进行匹配。常见类型有:
  • f:普通文件
  • d:目录
  • l:符号链接
  • -mtime:按文件修改时间进行匹配。+n 表示超过 n 天,-n 表示过去 n 天内,n 表示正好 n 天。
  • -size:按文件大小进行匹配。可以使用 k、M、G 等单位。
  • -exec:执行命令。{} 是一个占位符,表示每个匹配到的文件,\; 表示命令结束。
  • -printf:自定义输出格式,输出包括文件的 inode 号、路径、大小等信息。

示例:

按文件名:根据文件名称查找 /home 目录下的hello.txt 文件。没有文件不会有输出提示。

按拥有者:查找/opt 目录下,用户名称为 nobody 的文件

查找整个Linux系统下大于200M的文件(+n 大于 -n 小于 n 等于)

2、locate指令

基本语法:locate 搜索文件

功能:locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

注意:

由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

示例:

使用locate 指令快速定位a.txt 文件所在目录

3、which指令

可以查看某个指令在哪个目录下

查看ls指令在哪个目录下

4、grep指令和管道符号 |

基本语法:grep [选项] 查找内容 源文件

功能:grep 过滤查找,管道符 | ,表示将前一个命令的处理结果输出传递给后面的命令处理

常用选项:

-n 显示匹配行及行号

-i 忽略字母大小写

示例:

在 hello.txt 中查找 yes 所在行并显示行号

(1)

(2)


http://www.ppmy.cn/devtools/162820.html

相关文章

STM32MP15-FSMP1A单片机移植Linux系统platform总线驱动

之前在该单片机下移植的Linux驱动是学习过程中,对Linux内核驱动的引导学习,接下来才是比较正常的驱动开发。 在Linux内核中,对于驱动的处理,一般会通过总线进行设备信息和设备驱动的匹配,来达到自动检测外设连接系统以…

服务器离线部署DeepSeek

目标 本次部署的目标是在本地服务器上部署DeepSeek。但是该服务不能连接外网,因此只能使用离线部署的方式。为了一次完成部署。现在云服务器上进行尝试。 云服务器部署尝试 云服务器配置 CentOS72080Ti 11GB 安装准备 1、上传iso并配置为本地yum源 安装前先将…

计算机网络————(一)HTTP讲解

基础内容分类 从TCP/IP协议栈为依托,由上至下、从应用层到基础设施介绍协议。 1.应用层: HTTP/1.1 Websocket HTTP/2.0 2.应用层的安全基础设施 LTS/SSL 3.传输层 TCP 4.网络层及数据链路层 IP层和以太网 HTTP协议 网络页面形成基本 流程&#xff1a…

【Git】六、企业级开发模型

文章目录 Ⅰ. 前言Ⅱ. 系统开发环境Ⅲ. Git 分支设计规范master分支release分支develop分支feature分支hotfix分支 Ⅰ. 前言 ​ 我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。 ​…

mysql对中文列值进行排序

ORDER BY CONVERT(name USING GBK) 在 MySQL 中,CONVERT 函数用于在不同字符集之间进行转换。当你看到 CONVERT(name USING GBK) 这样的语句时,它的作用是将 u.user_name 字段的值从当前字符集(可能是 UTF-8 或其他)转换为 GBK 字…

STM32+ESP8266局域网通信

若该文为原创文章,转载请注明原文出处。 此篇记录如何使用APP,在局域网内和STM32通信,并远程控制。 一、原理 STM32通过串口AT指令控制ESP8266(ESP-01S), ESP8266会产生一个热点,并创建了TCP服务,手机连接热点&#…

解决后端跨域问题

目录 一、什么是跨域问题? 1、跨域问题的定义 2、举例 3、为什么会有跨域问题的存在? 二、解决跨域问题 1、新建配置类 2、编写代码 三、结语 一、什么是跨域问题? 1、跨域问题的定义 跨域问题(Cross-Origin Resource Sh…

大厂都在用的前端换肤方案:多品牌适配 + 夜间模式全解析

目录 引言 1. 换肤基础 1.1 换肤概念 1.2 主题类型 1.3 应用场景 2. 核心方案 2.1 CSS 变量切换 2.1.1 基本用法 2.1.2 优势与挑战 2.1.3 解决方案 2.2 动态样式表 2.2.1 实现步骤 2.2.2 优势与劣势 2.2.3 优化建议 2.3 类名空间 2.3.1 实现步骤 2.3.2 示例代码…