当前位置: 首页 > news >正文

Linux搜索---find

find搜索

find 命令的核心功能是在指定的目录路径下,递归地搜索文件和目录,并且可以根据多种条件对搜索结果进行筛选,还能对符合条件的文件和目录执行特定操作。

一、基础语法结构

find [起始目录] [匹配条件] [执行操作]
# 基本示例
find ~/Documents -name "*.pdf" -exec ls -lh {} \;

二、核心匹配条件详解

1. 文件名匹配

参数功能描述示例
-name精确文件名匹配find /etc -name "nginx.conf"
-iname不区分大小写匹配find . -iname "README"
-regex正则表达式匹配find . -regex ".*\.\(jpg|png\)$"

通配符对照表

? → 匹配单个字符(除路径分隔符)
* → 匹配任意长度字符
[] → 字符集合(如[a-z0-9])

2. 文件类型筛选

find /dev -type c        # 字符设备文件
find . -type d -empty    # 空目录
find ~ -type l           # 符号链接

type参数对照

f → 普通文件
d → 目录
l → 符号链接
b → 块设备
c → 字符设备
s → 套接字
p → 命名管道

3. 时间维度搜索

# 修改时间(mtime)
find /var/log -mtime +30   # 30天前修改过的文件
find /backup -mmin -60     # 60分钟内修改过的文件# 访问时间(atime)
find /home -atime -7       # 7天内被访问过的文件# 创建时间(ctime) 
find . -ctime 0            # 24小时内创建的文件

4. 文件大小筛选

find / -size +1G         # 大于1GB的文件
find . -size -500k       # 小于500KB的文件
find /tmp -size +10M -size -100M  # 10MB到100MB之间

单位对照表

c → bytes
k → kilobytes (1024 bytes)
M → megabytes 
G → gigabytes

三、高级组合技巧

1. 逻辑运算符

对比其他逻辑符
操作符含义示例作用
-a逻辑与(AND)-name "a" -a -size +1M同时满足名称和大小条件的文件
-o逻辑或(OR)-name "a" -o -name "b"满足名称是 “a” 或 “b” 的文件
!逻辑非(NOT)! -name "*.tmp"排除所有 .tmp 文件
# AND组合(默认)
find . -name "*.tmp" -size +1M# OR条件
find / \( -name "*.log" -o -name "*.out" \)# NOT排除
find ~/ ! -user $(whoami)

⚠️ 括号转义**\( ... \)** 的必要性
\( ... \) 括号用于将多个条件组合成一个整体(需转义为 \(\) 避免 Shell 误解析)
如果直接写成 -name "*.log" -o -name "*.out" 而不加括号,find 的解析优先级可能导致逻辑错误。转义括号 \(\) 是必须的,用于明确条件分组。

补充:

-user选项:在 find 命令里,-user 属于一个测试选项,其用途是依据文件的所有者来筛选文件。
find ~/ ! -user $(whoami)
-user $(whoami):这里的 $(whoami) 会被替换成当前登录用户的用户名,-user 选项会检查文件的所有者是否为当前用户。

2. 深度控制

find /var -maxdepth 2 -name "*.conf"  # 限制搜索层级
find . -mindepth 3 -type f            # 从第3层开始搜索

3. 权限过滤

find /etc -perm 644          # 精确权限匹配
find . -perm /u=x            # 用户有执行权限
find ~ -perm -g=w            # 组用户有写权限

四、动作处理指令

1. 基础操作

# 简单输出
find . -print        # 默认动作,可省略
find /tmp -ls        # 显示详细信息# 删除操作
find /tmp -name "core.*" -delete

2. -exec 执行命令

-exec是find 命令的一个选项,用于指定对查找到的每个文件或目录执行的命令。当 find 命令找到符合条件的文件或目录时,会将这些文件或目录作为参数传递给 -exec 后面的命令。
特殊格式说明

{} → 匹配到的文件名占位符
\; → 命令终止符(必须转义)
-execdir → 在文件所在目录执行
# 标准格式
find [path] [conditions] -exec command {} \;# 文件批量重命名
find . -name "*.jpg" -exec rename 's/IMG/Photo/' {} \;# 结合xargs处理
find /log -name "*.log" -print0 | xargs -0 rm

\;
含义:-exec 选项的结束标志,用于告诉 find 命令 -exec 后面的命令到此结束。注意,; 在 shell 中有特殊含义,因此需要使用反斜杠 \ 进行转义,以避免被 shell 误解。

1.详细解释find . -name "*.jpg" -exec rename 's/IMG/Photo/' {} \;

  • rename是一个用于批量重命名文件的命令。
  • 's/IMG/Photo/' 是 rename 命令使用的替换规则,它采用的是 Perl 风格的正则表达式替换语法。具体来说:
  • s表示替换操作(substitute)。
  • /IMG/Photo/中,IMG是要被替换的字符串,Photo是替换后的字符串。也就是说,rename 命令会将文件名中所有的 IMG 替换为 Photo。

2.详细解释 find /log -name "*.log" -print0 | xargs -0 rm

此命令的主要功能是在 /log 目录及其子目录中查找所有扩展名为 .log 的文件,并将这些文件删除。

1. find 命令部分
  • find:这是一个用于在文件系统中搜索文件和目录的强大工具。
  • /log:指定了搜索的起始路径,即从 /log 目录开始,递归地搜索其所有子目录。
  • -name "*.log":这是一个筛选条件,-name 选项用于根据文件名进行匹配。*.log 是一个通配符表达式,其中 * 表示任意数量的任意字符,所以该条件会匹配所有文件名以 .log 结尾的文件。
  • -print0find 命令的一个选项,它会将查找到的每个符合条件的文件的完整路径输出,并且每个路径之间用空字符(\0)分隔,而不是默认的换行符。使用空字符作为分隔符可以避免文件名中包含空格、换行符等特殊字符时可能导致的问题。
2. |(管道符号)

管道符号用于将一个命令的输出作为另一个命令的输入。在这里,find 命令的输出(即所有符合条件的 .log 文件的路径)会被传递给 xargs 命令。

3. xargs 命令部分
  • xargs:这个命令用于将标准输入的内容转换为命令行参数。它会读取输入的内容,并将其拆分成多个参数,然后传递给指定的命令执行。
  • -0xargs 命令的一个选项,它告诉 xargs 使用空字符(\0)作为输入内容的分隔符,这与 find 命令的 -print0 选项相匹配,确保在处理包含特殊字符的文件名时不会出错。
  • rmxargs 要执行的命令,即删除文件的命令。xargs 会将从 find 命令接收到的文件路径作为参数传递给 rm 命令,从而实现对这些文件的删除操作。
注意事项
  • 此命令会直接删除文件,且没有确认提示,使用时需谨慎,确保操作的文件是你确实想要删除的。
  • 如果 /log 目录不存在或者没有足够的权限访问该目录及其文件,命令可能会报错。

3. 安全确认模式

-ok是 find 命令的一个选项,与 -exec 类似,都是用于指定对查找到的符合条件的文件执行特定命令。但 -ok 比 -exec 更加谨慎,它在执行命令之前会向用户进行确认。只有当用户输入 y 或 Y 表示同意后,才会真正执行命令;若输入其他内容,则会跳过该文件,继续处理下一个符合条件的文件。

find /var -name "*.old" -ok rm {} \;  # 每项操作前确认

五、性能优化方案

  1. 搜索路径优化

    # 优先指定最小范围
    find /home/user/project -name "*test*"
    
  2. 排除特定目录

    find / -path "/mnt" -prune -o -name "*.conf"
    
  • -prune是 find 命令的一个选项,其作用是告诉 find 命令跳过当前匹配到的目录,不继续递归搜索该目录及其子目录。在这个命令中,当 find 遇到 /mnt 目录时,使用 -prune 选项会跳过 /mnt 目录及其所有子目录,避免在这些目录中进行后续的搜索操作。
  1. 并行处理加速
    find . -type f -print0 | xargs -0 -P 4 md5sum
    
  • -P 4:xargs 命令的选项,-P 用于指定并行执行命令的最大进程数。这里的 4 表示 xargs 最多会同时启动 4 个进程来执行后续的命令,以此提高处理效率。
  • md5sum:是一个用于计算文件 MD5 哈希值的命令。xargs 会将从 find 命令接收到的文件路径作为参数传递给 md5sum 命令,从而对这些文件计算 MD5 哈希值。

六、经典应用场景

1. 系统清理

# 删除7天前的临时文件
find /tmp -type f -mtime +7 -delete# 查找空目录并删除
find . -type d -empty -exec rmdir {} \;

2. 安全审计

查找SUID权限文件

find / -perm /4000 -user root -type f
  • -perm /4000
    • -perm选项:用于根据文件的权限来筛选文件。
    • /符号:在权限匹配中,/ 表示 “或” 的关系,即只要文件的权限中包含指定的任何一位权限,该文件就会被匹配。
    • 4000:在 Unix/Linux 系统中,文件权限使用数字表示,4000 对应的是 suid(Set User ID)位。当一个文件设置了 suid 位,普通用户在执行该文件时,会以文件所有者的身份运行。所以 -perm /4000 表示查找那些具有 suid 位权限的文件。
  • -user root
    • -user选项:用于根据文件的所有者来筛选文件。
    • root:表示文件的所有者必须是 root 用户。因此,该条件会筛选出所有者为 root 的文件。

检测世界可写文件

find / -xdev -type f -perm -o=w ! -user root
  • -xdev选项表示 “不跨越设备”(don’t cross devices)。当使用该选项时,find 命令只会在当前文件系统中进行搜索,不会跨越到其他挂载的文件系统。例如,如果 /home 挂载在另一个磁盘分区上,使用 -xdev 后,find 不会搜索 /home 目录所在的文件系统,仅在根目录所在的文件系统中查找文件。
  • -perm -o=w
    • -perm选项用于根据文件的权限来筛选文件。
    • - 表示文件的权限必须完全包含指定的权限位。
    • o表示其他用户(other users),即除了文件所有者和所属组用户之外的用户。
    • =w表示具有写权限。所以 -perm -o=w 表示查找那些其他用户对其具有写权限的文件。
  • ! -user root
    • !是逻辑非操作符,表示取反。
    • -user选项用于根据文件的所有者来筛选文件。
    • root表示 root 用户。所以 ! -user root 表示查找文件所有者不是 root 用户的文件。

3. 批量处理

# 修改文件权限
find /shared -type f -exec chmod 644 {} \;# 转换图片格式
find . -name "*.png" -exec mogrify -format jpg {} \;
  • mogrify -format jpg
    • mogrify是 ImageMagick 软件包中的一个工具,用于对图像文件进行批量修改,如调整大小、改变格式、添加水印等。
    • -format jpg是 mogrify 的一个选项,用于指定将图像文件转换为 JPEG 格式。

七、异常处理指南

  1. 权限问题
    sudo find / -name "kernel.log" 2>/dev/null
    
    在 Linux 系统中,每个进程都有三个标准数据流:标准输入(stdin,文件描述符为 0)、标准输出(stdout,文件描述符为 1)和标准错误输出(stderr,文件描述符为 2)。
  • 2>/dev/null
    2> 是重定向符号,用于将标准错误输出(文件描述符为 2)重定向到指定的位置。
    /dev/null 是一个特殊的设备文件,也被称为 “黑洞”,所有写入它的数据都会被丢弃。所以 2>/dev/null 的作用是将 find 命令执行过程中产生的所有错误信息重定向到 /dev/null,从而在终端上不会显示这些错误信息,使输出更加简洁。
  1. 特殊字符处理

    find . -name "* strange*" -exec echo {} \;
    
  2. 性能监控

    time find / -type f -name "*.conf" >/dev/null 2>&1  #合并2stderr和1stdout
    
  • time
    time是一个用于测量命令执行时间的工具。它可以统计命令从开始执行到结束所花费的时间,通常会输出三个时间指标:
  • 用户时间(user time):命令在用户态执行所花费的 CPU 时间。
  • 系统时间(system time):命令在内核态执行所花费的 CPU 时间。
  • 实际时间(real time):从命令开始执行到结束所经过的实际时间,这个时间包含了 CPU 等待 I/O 操作等非 CPU 计算的时间。

八、组合命令示例

查找大文件并排序

find / -type f -size +100M -exec du -h {} \; | sort -rh
  • du是一个用于估算文件或目录磁盘使用空间的命令。
  • -h是 du 命令的选项,用于以人类可读的格式显示文件大小,例如使用 KB、MB、GB 等单位。
  • sort -rh
    • sort是一个用于对文本行进行排序的命令。
    • -r是 sort 命令的选项,表示反向排序,即从大到小排序。
    • -h是 sort 命令的选项,用于按照人类可读的文件大小格式进行排序。所以 sort -rh 会将 du -h 输出的结果按照文件大小从大到小进行排序。

实时监控文件变化

watch -n 5 'find /uploads -newermt "5 minutes ago"'
  • watch
    watch 是一个 Linux 命令,它可以周期性地执行指定的命令,并将命令的输出结果显示在终端上。每次执行命令后,watch 会清空终端屏幕,然后显示新的命令输出,方便用户实时观察命令执行结果的变化。

  • -n 5
    -n是 watch 命令的一个选项,用于指定命令执行的时间间隔,单位为秒。这里的 5 表示每隔 5 秒执行一次后面指定的命令。

  • -newermt:find 命令的一个选项,用于根据文件的修改时间来筛选文件和目录。-newermt 后面需要跟一个时间参数,它会找出修改时间晚于指定时间的文件和目录。

# 创建文件清单
find src/ -name "*.java" -fprintf filelist.txt "%p\n"
  • -fprintf是 find 命令的一个选项,用于将查找到的符合条件的文件信息按照指定的格式写入到指定的文件中。
  • "%p\n"
    这是 -fprintf 选项的格式字符串,用于指定写入文件的内容格式:
    • %p是一个占位符,表示文件的完整路径。
    • \n是换行符,用于在每个文件路径后面添加一个换行,使每个文件路径单独占一行。

💡 建议:将常用find组合保存为别名

alias findlarge='find . -type f -size +100M -exec ls -lh {} \; | awk "{ print \$NF \": \" \$5 }"'

此命令行定义了一个名为 findlarge 的别名(alias)。该别名的作用是在当前目录(.)及其子目录中查找大小超过 100MB 的普通文件,然后将这些文件的文件名和文件大小以易读的格式输出。
alias是一个用于创建命令别名的 shell 命令。通过创建别名,你可以为一个复杂的命令序列定义一个简短、易记的名称,之后在命令行中输入这个别名就相当于执行了完整的命令序列。


我有快乐的勇气,也有悲伤的勇气。 —阿尔弗雷德·阿德勒

相关文章:

Linux搜索---find

find搜索 find 命令的核心功能是在指定的目录路径下,递归地搜索文件和目录,并且可以根据多种条件对搜索结果进行筛选,还能对符合条件的文件和目录执行特定操作。 一、基础语法结构 find [起始目录] [匹配条件] [执行操作] # 基本示例 find…...

python之爬虫入门实例

链家二手房数据抓取与Excel存储 目录 开发环境准备爬虫流程分析核心代码实现关键命令详解进阶优化方案注意事项与扩展 一、开发环境准备 1.1 必要组件安装 # 安装核心库 pip install requests beautifulsoup4 openpyxl pandas# 各库作用说明: - requests&#x…...

Blender常用快捷键的汇总

一、基础操作 全选/取消全选:A(全选)、AA(连续按两次A取消全选)复制物体:Shift D(复制后需点击确认位置)移动物体:G(按X/Y/Z可约束轴向移动)旋转…...

鸿蒙启动页开发

鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标 找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可 2.更改应用名称 3.效果展示 2.1 广告页面开发 3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } fr…...

Unity 文字高度自适应

期望 文字有字号限制,输入文字文字后先判断高度是否适用于限制字号,若处于最小字号时高度任不适用,则调整RectTransform 的高度。 核心代码 每次输入文字时先将字号设定为原始字号。 comp.fontSize fontSize; comp.text content; 拓展T…...

Teaching Small Language Models Reasoning throughCounterfactual Distillation

2024.emnlp-main.333.pdfhttps://aclanthology.org/2024.emnlp-main.333.pdf 1.概述 大型语言模型(LLM),如GPT-3,在各种下游任务中表现出色,包括通过链式思维(CoT)进行问题解答。CoT鼓励模型在解决问题时生成中间推理步骤。尽管LLM取得了成功,但由于模型大小的限制,其…...

快速开始React开发(一)

快速开始React开发(一) React是一个JavaScript库,用于构建交互式网站,并且能够快捷创建SPA(Single Page App),其组件化的思想也是被一再传播,无论是普通的Web网站还是嵌入移动端交互…...

2025最新Transformer模型及深度学习前沿技术应用

第一章、注意力(Attention)机制 1、注意力机制的背景和动机(为什么需要注意力机制?注意力机制的起源和发展里程碑)。 2、注意力机制的基本原理(什么是注意力机制?注意力机制的数学表达与基本公…...

极狐GitLab 正式发布安全版本17.9.1、17.8.4、17.7.6

本分分享极狐GitLab 补丁版本 17.9.1、17.8.4、17.7.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...

[环境搭建篇] Windows 环境下如何安装Docker工具

Windows 环境下如何安装Docker工具 1. 检查系统要求2. 启用WSL 2和虚拟化步骤一:启用WSL步骤二:启用虚拟化(Hyper-V)步骤三:安装WSL 2内核 3. 安装Docker Desktop4. 配置Docker5. 家庭版用户替代方案6. 常见问题解决问…...

JavaScript 数组和字符串方法详解

一、数组方法 数组方法是操作数组的核心工具,分为修改原数组和返回新数组两类。 1. 常用修改原数组的方法 方法参数返回值说明示例push...items新长度末尾添加元素arr.push(4) → [1,2,3,4]pop无删除的元素删除最后一个元素arr.pop() → 3(原数组变[1,…...

达梦数据库系列之Mysql项目迁移为达梦项目

达梦数据库系列之Mysql项目迁移为达梦项目 1 达梦数据库安装及MySql数据迁移2 SpringBoot项目迁移2.1 驱动包引入2.2 驱动类配置2.3 数据源配置2.4 flowable迁移2.4.1 异常问题2.4.2 解决 3 迁移常见问题3.1 不是 GROUP BY 表达式3.1.1 dm.ini 开启Mysql兼容模式3.1.2 修改动态…...

10个实用IntelliJ IDEA插件

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 以下是为提升开发效率推荐的10个实用IntelliJ IDEA插件,涵盖代码质量、效率工具及热门框架支持: 一、代码质量与规范 SonarLint 实时…...

10分钟从零开始搭建机器人管理系统(飞算AI)

1. 安装插件 https://www.feisuanyz.com/ 2. Intellij IDEA中运行 创建一个BS架构的机器人远程操控系统,具备机器人状态及位置实时更新,可以实现机器人远程遥控,可以对机器人工作日志进行统计分析,以及其它管理系统的常用功能3…...

[自动驾驶-传感器融合] 多激光雷达的外参标定

文章目录 引言外参标定原理ICP匹配示例参考文献 引言 多激光雷达系统通常用于自动驾驶或机器人,每个雷达的位置和姿态不同,需要将它们的数据统一到同一个坐标系下。多激光雷达外参标定的核心目标是通过计算不同雷达坐标系之间的刚性变换关系&#xff08…...

怎么让呼叫中心支持高并发

基于FreeSWITCH的呼叫中心系统并发性能优化指南 在呼叫中心系统建设中,高并发处理能力是衡量系统稳定性和效率的核心指标。作为开源软交换平台的代表,FreeSWITCH凭借其线程模型和模块化架构,天然适合高并发场景。然而,实际应用中仍…...

Elasticsearch简单学习

1、依赖的导入 <!--ES依赖--> <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency>2、客户端链接 RestHighLevelClient client new RestHigh…...

就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的路由负载均衡及过滤深入浅出

本篇技术博文摘要 &#x1f31f; 本文内容涵盖了BGP负载均衡的基本概念、配置技巧和在实际网络中的应用&#xff0c;包括如何在华为ENSP上实现负载均衡和路由过滤。通过配置BGP的前缀列表、ACL以及路由过滤策略&#xff0c;可以实现网络流量的精确控制和优化&#xff0c;提高网…...

valgrind 检测多线程 bug,检测 并发 bug concurrent bug parallel bug

valgrind --toolhelgrind ./your_program 如果检测的对象是大型程序&#xff0c;可以设定仅在某些函数中开启 valgrind 的检测&#xff1a; Valgrind 提供了一些客户请求&#xff08;client requests&#xff09;&#xff0c;可以在代码中插入特定的宏来控制 Valgrind 的行为。…...

游戏引擎学习第135天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 game_asset.cpp 的创建 在开发过程中&#xff0c;不使用任何现成的游戏引擎或第三方库&#xff0c;而是直接基于 Windows 进行开发&#xff0c;因为 Windows 目前仍然是游戏的标准平台&#xff0c;因此首先在这个环境中进行…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...