Linux shell编程学习笔记78:cpio命令——文件和目录归档工具(上)

0 前言
在Linux系统中,除了tar命令,我们还可以使用cpio命令来进行文件和目录的归档。
1 cpio命令的功能,帮助信息,格式,选项和参数说明
1.1 cpio命令的功能
cpio 名字来自 "copy in, copy out"(拷进拷出),是Linux中用于处理归档文件(例如,.cpio或.tar文件)的工具,即从一个地方复制文件到另一个地方,同时保留文件的属性,如所有权、权限和时间戳。
使用cpio命令必须带参数或选项。
1.2 cpio命令的帮助信息
我们可以使用命令
cpio --help
或
cpio --usage
来查看cpio命令的帮助信息。
1.2.1 bash下的cpio命令帮助信息
[purpleendurer @ bash ~] cpio --help
Usage: cpio [OPTION...] [destination-directory]
GNU `cpio' copies files to and from archivesExamples:# Copy files named in name-list to the archivecpio -o < name-list [> archive]# Extract files from the archivecpio -i [< archive]# Copy files named in name-list to destination-directorycpio -p destination-directory < name-listMain operation mode:-i, --extract Extract files from an archive (run in copy-inmode)-o, --create Create the archive (run in copy-out mode)-p, --pass-through Run in copy-pass mode-t, --list Print a table of contents of the inputOperation modifiers valid in any mode:--block-size=BLOCK-SIZE Set the I/O block size to BLOCK-SIZE * 512bytes-B Set the I/O block size to 5120 bytes-c Identical to "-H newc", use the new (SVR4)portable format.If you wish the old portable(ASCII) archive format, use "-H odc" instead.-C, --io-size=NUMBER Set the I/O block size to the given NUMBER ofbytes--force-local Archive file is local, even if its name containscolons-f, --nonmatching Only copy files that do not match any of the givenpatterns-F, --file=[[USER@]HOST:]FILE-NAMEUse this FILE-NAME instead of standard input oroutput. Optional USER and HOST specify the userand host names in case of a remote archive-H, --format=FORMAT Use given archive FORMAT-M, --message=STRING Print STRING when the end of a volume of thebackup media is reached-n, --numeric-uid-gid In the verbose table of contents listing, shownumeric UID and GID--quiet Do not print the number of blocks copied--rsh-command=COMMAND Use remote COMMAND instead of rsh-v, --verbose Verbosely list the files processed-V, --dot Print a "." for each file processed-W, --warning=FLAG Control warning display. Currently FLAG is one of'none', 'truncate', 'all'. Multiple optionsaccumulate.Operation modifiers valid only in copy-in mode:-b, --swap Swap both halfwords of words and bytes ofhalfwords in the data. Equivalent to -sS-r, --rename Interactively rename files-s, --swap-bytes Swap the bytes of each halfword in the files-S, --swap-halfwords Swap the halfwords of each word (4 bytes) in thefiles--to-stdout Extract files to standard output-E, --pattern-file=FILE Read additional patterns specifying filenames toextract or list from FILE--only-verify-crc When reading a CRC format archive, only verify thechecksum of each file in the archive, don'tactually extract the filesOperation modifiers valid only in copy-out mode:-A, --append Append to an existing archive.--device-independent, --reproducibleCreate device-independent (reproducible) archives--ignore-devno Don't store device numbers-O [[USER@]HOST:]FILE-NAME Archive filename to use instead of standardoutput. Optional USER and HOST specify the userand host names in case of a remote archive--renumber-inodes Renumber inodesOperation modifiers valid only in copy-pass mode:-l, --link Link files instead of copying them, whenpossibleOperation modifiers valid in copy-in and copy-out modes:--absolute-filenames Do not strip file system prefix components fromthe file names--no-absolute-filenames Create all files relative to the currentdirectoryOperation modifiers valid in copy-out and copy-pass modes:-0, --null A list of filenames is terminated by a nullcharacter instead of a newline-a, --reset-access-time Reset the access times of files after readingthem-I [[USER@]HOST:]FILE-NAME Archive filename to use instead of standard input.Optional USER and HOST specify the user and hostnames in case of a remote archive-L, --dereference Dereference symbolic links (copy the filesthat they point to instead of copying the links).-R, --owner=[USER][:.][GROUP] Set the ownership of all files created to thespecified USER and/or GROUPOperation modifiers valid in copy-in and copy-pass modes:-d, --make-directories Create leading directories where needed-m, --preserve-modification-timeRetain previous file modification times whencreating files--no-preserve-owner Do not change the ownership of the files--sparse Write files with large blocks of zeros as sparsefiles-u, --unconditional Replace all files unconditionally-?, --help give this help list--usage give a short usage message--version print program versionMandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.Report bugs to <bug-cpio@gnu.org>.

1.2.2 银河麒麟(kylin)系统中的cpio命令帮助信息
[purpleendurer @ kylin ~] cpio --help
用法: cpio [选项...] [目标目录]
GNU `cpio' 归档文件及从包中提取文件例子:# 归档 name-list 中的文件到 archivecpio -o < name-list [> archive]# 从 archive 中提取文件cpio -i [< archive]# 拷贝 name-list 中的文件到目标目录(destination-directory)cpio -p destination-directory < name-list主操作模式-i, --extract 从包中提取文件 (运行 copy-in 模式)-o, --create 创建包 (运行 copy-out 模式)-p, --pass-through 运行 copy-pass 模式-t, --list 打印输入内容列表应用于所有模式的选项:--block-size=BLOCK-SIZE 设置 I/O 块大小为 BLOCK-SIZE * 512字节-B 设置 I/O 块大小为 5120 字节-c 使用老的可移植的 (ASCII) 包格式-C, --io-size=NUMBER 设置 I/O 块大小为指定的 NUMBER 字节--force-local包文件是本地的,尽管名字中含有冒号-f, --nonmatching 仅拷贝不匹配任意给定的模式的文件-F, --file=[[用户@]主机:]文件名用“文件名”来替代标准输入和输出。如果是非本地的文件,则用可选的“用户”和“主机”来指定用户名和主机名。-H, --format=格式 使用指定的包格式-M, --message=STRING 当到达备份介质的尾部的时候打印STRING-n, --numeric-uid-gid 在内容列表的详表中,显示数字的 UID和 GID--quiet 不要打印已拷贝的块数--rsh-command=COMMAND 用 COMMAND 替代 rsh-v, --verbose 详细列出已处理的文件-V, --dot 每处理一个文件就打印一个“.”-W, --warning=FLAG 控制警告信息显示。当前 FLAG可为“none”、“truncate”或“all”。多个选项可以累积。命令修饰仅在 copy-in 模式中有效:-b, --swap交换数据中每个字的两个半字以及每个半字中的两个字节。等价于-sS-r, --rename 交互式重命名文件-s, --swap-bytes 交换文件中每个半字中的两个字节-S, --swap-halfwords交换文件中每个字(4个字节)中的两个半字--to-stdout 提取文件到标准输出-E, --pattern-file=FILE 从 FILE中读取额外的用于指定提取或列表的文件名的模式--only-verify-crc 当读取一个 CRC格式的包,仅检验包中每个文件的CRC,不提取文件应用于 copy-out 模式的选项-A, --append 追加到已存在的归档文件。-O [[用户@]主机:]文件名使用包文件名而不是标准输出。如果文件在远程机器上,则可指定用户和主机应用于 copy-pass 模式的选项:-l, --link 在可行时链接文件而不是拷贝文件应用于 copy-in 及 copy-out 模式的选项:--absolute-filenames 文件名不去除文件系统前缀--no-absolute-filenames 相对于当前目录来创建所有文件应用于 copy-out 及 copy-pass 模式的选项:-0, --null 文件名列表采用 NULL而不是换行作为分割符-a, --reset-access-time 文件读取后恢复文件的访问时间-I [[用户@]主机:]文件名从文件读入而不是从标准输入读入。如果文件在远程机器上,则可指定用户和主机-L, --dereference 跟随符号链接(拷贝符号链接指向的文件而不是拷贝链接本身)-R, --owner=[用户][:.][组]设置所有文件的所有权信息到指定的用户和/或组应用于 copy-in 和 copy-pass 模式的选项:-d, --make-directories 需要时创建目录--extract-over-symlinks Force writing over symbolic links-m, --preserve-modification-time创建文件时保留以前文件的修改时间--no-preserve-owner 不改变文件的所有权--sparse把含有大块零的文件以稀疏文件方式写出-u, --unconditional 无条件覆盖所有文件-?, --help 显示此帮助列表--usage 显示简短的用法说明--version 打印程序版本对长选项必须或可选的参数同样适用于相应的短选项。请向 <bug-cpio@gnu.org> 报告错误。
[purpleendurer @ kylin ~]
1.3 cpio 命令格式
cpio [选项...] [目标目录]
1.4 cpio命令的选项说明
与tar命令相似,cpio命令的选项也很多,分为
1.4.1 主要操作模式选项

| 选项 | 说明 |
|---|---|
| -i, --extract | 从包中提取文件 (运行 copy-in 模式) |
| -o, --create | 创建包 (运行 copy-out 模式) |
| -p, --pass-through | 运行 copy-pass 模式 |
| -t, --list | 将输入内容以列表形式打印 |
1.4.2 应用于所有模式的选项

| 选项 | 说明 |
|---|---|
| --block-size=BLOCK-SIZE | 设置 I/O 块大小为 BLOCK-SIZE * 512字节 |
| -B | 设置 I/O 块大小为 5120 字节 |
| -c | 使用老的可移植的 (ASCII) 包格式 |
| -C, --io-size=NUMBER | 设置 I/O 块大小为指定的 NUMBER 字节 |
| --force-local | 包文件是本地的,尽管名字中含有冒号 |
| -f, --nonmatching | 仅拷贝不匹配任意给定的模式的文件 |
| -F, --file=[[用户@]主机:]文件名 | 用“文件名”来替代标准输入和输出。如果是非本地的文件,则用可选的“用户”和“主机”来指定用户名和主机名。 |
| -H, --format=格式 | 使用指定的包格式 |
| -M, --message=STRING | 当到达备份介质的尾部的时候打印 STRING |
| -n, --numeric-uid-gid | 在内容列表的详表中,显示数字的 UID和 GID |
| --quiet | 不要打印已拷贝的块数 |
| --rsh-command=COMMAND | 用 COMMAND 替代 rsh |
| -v, --verbose | 详细列出已处理的文件 |
| -V, --dot | 每处理一个文件就打印一个“.” |
| -W, --warning=FLAG | 控制警告信息显示。 FLAG可为“none”、“truncate”或“all”。多个选项可以累积。 |
1.4.3 仅在copy-in 模式中有效的选项

| 选项 | 说明 |
|---|---|
| -b, --swap | 交换数据中每个字的两个半字以及每个半字中的两个字节。等价于-sS |
| -r, --rename | 交互式重命名文件 |
| -s, --swap-bytes | 交换文件中每个半字中的两个字节 |
| -S, --swap-halfwords | 交换文件中每个字(4个字节)中的两个半字 |
| --to-stdout | 提取文件到标准输出 |
| -E, --pattern-file=FILE | 从 FILE中读取额外的用于指定提取或列表的文件名的模式 |
| --only-verify-crc | 当读取一个 CRC格式的包时,仅检验包中每个文件的CRC,不提取文件 |
1.4.4 仅在copy-out 模式中有效的选项

| 选项 | 说明 | 备注 |
|---|---|---|
| -A, --append | 追加到已存在的归档文件。 | |
| --device-independent, --reproducible | 创建独立于设备(可重现)的存档 | 银河麒麟操作系统不支持 |
| --ignore-devno | 不存储设备编号 | 银河麒麟操作系统不支持 |
| -O [[用户@]主机:]文件名 | 使用包文件名而不是标准输出。如果文件在远程机器上,则可指定用户和主机 | |
| --renumber-inodes | 对 inode 重新编号 | 银河麒麟操作系统不支持 |
1.4.5 仅在copy-out 模式中有效的选项

| 选项 | 说明 |
|---|---|
| -l, --link | 在可行时链接文件而不是拷贝文件 |
1.4.6 在copy-in 及 copy-out 模式中有效的选项

| 选项 | 说明 |
|---|---|
| --absolute-filenames | 文件名不去除文件系统前缀 |
| --no-absolute-filenames | 相对于当前目录来创建所有文件 |
1.4.7 在 copy-out 及 copy-pass 模式中有效的选项

| 选项 | 说明 |
|---|---|
| -0, --null | 文件名列表采用 NULL而不是换行作为分割符 |
| -a, --reset-access-time | 文件读取后恢复文件的访问时间 |
| -I [[用户@]主机:]文件名 | 从文件读入而不是从标准输入读入。如果文件在远程机器上,则可指定用户和主机 |
| -L, --dereference | 跟随符号链接(拷贝符号链接指向的文件而不是拷贝链接本身) |
| -R, --owner=[用户][:.][组] | 设置所有文件的所有权信息到指定的用户和/或组 |
1.4.8 在 copy-in 及 copy-pass 模式中有效的选项

| 选项 | 说明 | 备注 |
|---|---|---|
| -d, --make-directories | 需要时创建目录 | |
| --extract-over-symlinks | 强制复写符号链接 | 银河麒麟系统支持 |
| -m, --preserve-modification-time | 创建文件时保留以前文件的修改时间 | |
| --no-preserve-owner | 不改变文件的所有权 | |
| --sparse | 把含有大块零的文件以稀疏文件方式写出 | |
| -u, --unconditional | 无条件覆盖所有文件 | |
| -?, --help | 显示此帮助列表 | |
| --usage | 显示简短的用法说明 | |
| --version | 打印程序版本 |
1.4.9 相关说明
对长选项必须或可选的参数同样适用于相应的短选项。
1.5 cpio命令的三种模式
cpio命令的选项和参数取决于它运行的模式,即copy-out, copy-in或copy-pass模式。
1.5.1 将文件复制到归档文件中(copy-out模式)
在copy-out模式下,cpio命令将文件复制到归档文件中。它从标准输入读取文件名列表,每行一个,然后将归档文件写入标准输出。
生成文件名列表的典型方法是使用find命令;给find命令加上-depth选项,以最小化不可读目录的权限问题。
1.5.2 从归档文件中提取文件(copy-in模式)
copy-in模式下,cpio命令从归档文件中提取文件或列出归档文件的内容。
它从标准输入读取归档文件。
任何非选项的命令行参数都是shell通配符模式;只有归档文件中名称与一个或多个模式匹配的文件才会从归档文件中提取。
与shell不同的是,文件名中的初始'.'可以匹配模式开头的通配符,而文件名中的'/'也可以匹配通配符。
如果没有给出模式,所有文件都会被提取。
1.5.3 将文件从一个目录树复制到另一个目录树(copy-pass模式)
在copy-pass模式下,cpio命令将文件从一个目录树复制到另一个目录树,将copy-out和copy-in步骤结合在一起,而不实际使用归档文件。
1.6 cpio命令支持的归档格式
cpio命令支持多种归档格式,包括:binary, old ASCII, new ASCII, CRC, HP-UX binary, HP-UX old ASCII, old tar, 和 POSIX .1 tar。
默认情况下,cpio命令创建binary格式的归档文件,以便与旧版本的cpio程序兼容。
在从归档文件中提取文件时,cpio命令会自动识别归档文件的类型,并且可以读取在不同字节顺序的机器上创建的归档文件。
相关文章:
Linux shell编程学习笔记78:cpio命令——文件和目录归档工具(上)
0 前言 在Linux系统中,除了tar命令,我们还可以使用cpio命令来进行文件和目录的归档。 1 cpio命令的功能,帮助信息,格式,选项和参数说明 1.1 cpio命令的功能 cpio 名字来自 "copy in, copy out"…...
为什么在 JSON 序列化中不使用 transient
有些小伙伴发现了,明明在返回的实体类中指定了属性为transient。为什么前端得到的返回json中还是有这个属性的值? 类: private String name; private transient String password;返回结果: { name:"刘大大", password:…...
K8S - Volume - NFS 卷的简介和使用
在之前的文章里已经介绍了 K8S 中两个简单卷类型 hostpath 和 emptydir k8s - Volume 简介和HostPath的使用 K8S - Emptydir - 取代ELK 使用fluentd 构建logging saidcar 但是这两种卷都有同1个限制, 就是依赖于 k8s nodes的空间 如果某个service pod中需要的vol…...
IO模型---BIO、NIO、IO多路复用、AIO详解
本篇将想给详细解释一下什么是BIO、NIO、IO多路复用以及AIO~ 同步的阻塞(BIO)和非阻塞(NIO)的区别 BIO:线程发来IO请求后,一直阻塞着IO线程,需要缓冲区这边数据准备好之后,才会进行下一步的操作。 举个🌰࿱…...
蓝桥杯真题——约翰的牛奶
输入样例: 8 9 10 输出样例: 1 2 8 9 10 本题是宽搜的模版题,不论怎么倒牛奶,A,B,C 桶里的牛奶可以看做一个三元点集 我们只要找到A桶是空的,B,C桶中的状态即可 #include <iostream> #include <cstring…...
单机docker-compose部署minio
单机多副本docker-compose部署minio 简单介绍 如果服务器有限可以单机挂载多硬盘实现多副本容错(生产不推荐) 部署好的文件状态 有两个重要文件 docker-compose.yaml和nginx.conf docker-compose.yaml是docker部署容器的配置信息包括4个minio和1个ng…...
Winform实现弹出定时框功能
1、程序 private void TimeDialogInitialize(){for(int i1; i<30;i){cbbTimeDialog.Items.Add(i);}}private void cbbTimeDialog_SelectedIndexChanged(object sender, EventArgs e){foreach(int i in cbbTimeDialog.Items){if(cbbTimeDialog.SelectedItem!null &&…...
【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)-Sentosa_DSML社区版
文章目录 一、算法概念一、算法原理(一) GBDT 及负梯度拟合原理(二) GBDT 回归和分类1、GBDT回归1、GBDT分类二元分类多元分类 (三)损失函数1、回归问题的损失函数2. 分类问题的损失函数: 三、G…...
Mini-Omni 语言模型在流式传输中边思考边听说应用
引入简介 Mini-Omni 是一个开源的多模态大语言模型,能够在思考的同时进行听觉和语言交流。它具有实时端到端语音输入和流媒体音频输出的对话能力。 语言模型的最新进展取得了显著突破。GPT-4o 作为一个新的里程碑,实现了与人类的实时对话,展示了接近人类的自然流畅度。为了…...
vue devtools的使用
vue devtools的使用 Vue Devtools 是一个强大的浏览器扩展,旨在帮助你调试和开发 Vue.js 应用。它支持 Chrome 和 Firefox 浏览器,并提供了一些工具和功能,可以让你更轻松地查看和调试 Vue 应用的状态和行为。以下是如何安装和使用 Vue Devtools 的详细指南。 安装 Vue De…...
无人机培训:无人机维护保养技术详解
随着无人机技术的飞速发展,其在航拍、农业、救援、环境监测等领域的应用日益广泛。然而,要确保无人机安全、高效地执行任务,定期的维护保养至关重要。本文将深入解析无人机维护保养的核心技术,涵盖基础构造理解、清洁与防尘、电机…...
Mac 创建 Python 虚拟环境
在 macOS 上,您可以使用以下步骤使用 virtualenv 创建虚拟环境: 首先,确保您已经安装了 Python 和 virtualenv。您可以在终端中运行以下命令来检查它们是否已安装: python --version virtualenv --version如果这些命令没有找到&am…...
安卓玩机工具-----无需root权限 卸载 禁用 删除当前机型app应用 ADB玩机工具
ADB玩机工具 ADB AppControl是很实用的安卓手机应用管理工具,无需root权限,通过usb连接电脑后,可以很方便的进行应用程序安装与卸载,还支持提取手机应用apk文件到电脑上,此外还有手机系统垃圾清理、上传文件等…...
中国科技统计年鉴1991-2020年
(数据收集)中国科技统计年鉴1991-2020年.Excel格式资源-CSDN文库https://download.csdn.net/download/2401_84585615/89475658 《中国科技统计年鉴》是由国家统计局社会科技和文化产业统计司与科学技术部战略规划司共同编辑的官方统计资料书,…...
OpenAI / GPT-4o:Python 返回结构化 / JSON 输出
在调用 OpenAI(比如:GPT-4o)接口时,希望返回的结果是能够在后续任务中自动化处理的结构化 / JSON 输出。GPT 版本:gpt-4o-2024-08-06,提供了这样的功能。 目标:从非结构化输入到结构化数据&…...
通信工程学习:什么是EDFA掺铒光纤放大器
EDFA:掺铒光纤放大器 EDFA,即掺铒光纤放大器(Erbium-Doped Fiber Amplifier),是一种在光纤通信中广泛使用的光放大器件。以下是对EDFA的详细解释: 一、定义与基本原理 EDFA是在石英光纤中掺入少量的稀土元…...
机器学习与深度学习的区别
随着人工智能技术的迅猛发展,机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)这两个术语越来越频繁地出现在人们的视野中。尽管它们之间有着紧密的联系,但实际上二者存在显著的区别。本文旨在…...
标准库标头 <barrier>(C++20)学习
此头文件是线程支持库的一部分。 类模板 std::barrier 提供一种线程协调机制,阻塞已知大小的线程组直至该组中的所有线程到达该屏障。不同于 std::latch,屏障是可重用的:一旦到达的线程组被解除阻塞,即可重用同一屏障。与 std::l…...
如何测量一个(传输网络)系统的容量
Little 定律就能反算系统容量,但我这篇文章要正着算。 假想一个理发店场景。李大爷拥有一家占地 50 平米的理发店,经理到店里理发如果已经有经理在理发,就要拿个券等待,请问李大爷需要印多少等待券? 这是个系统容量问…...
【MySQL】MySQL和Workbench版本兼容问题
1、安装MySQL WorkBench 最新版本下载:https://dev.mysql.com/downloads/workbench/ 历史版本下载:https://downloads.mysql.com/archives/workbench/ 2、问题描述 本人在Windows下安装了一个旧版本的MySQL(5.1),同…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
