linux常用命令(1):zip/unzip命令(压缩文件/解压缩文件)

news2024/12/25 0:33:12

文章目录

  • 前言
  • 一、linux安装zip文件
  • 二、zip语法
    • 2.1、常用选项实例
      • 2.1.1、-r (压缩文件夹,解决80%的场景)
      • 2.1.2、-q
      • 2.1.3、-d(从压缩文件中删除指定文件)
      • 2.1.4、-u(更新文件)
      • 2.1.5、-f
      • 2.1.6、-m
      • 2.1.7、-e(加密)
      • 2.1.8、-z(添加注释)
  • 三、unzip解压文件
    • 3.1、解压缩文件实例
  • 四、常见问题
    • 4.1、CentOS7中命令找不到

前言

本文主要讲解在Linux上怎么将文件压缩成zip包,及解压缩zip包。

zip命令 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
通过 zip 命令可以将文件打包成.zip格式的压缩包,里面会附含文件的名称、路径、创建时间、上次修改时间等等信息,与 tar 命令相似。

一、linux安装zip文件

1.查看是否安装压缩/解压zip软件包

yum list installed | grep zip

在这里插入图片描述
2.输入以下命令来安装zip/unzip软件:

以下两种方式任选其一

方式一:
sudo apt-get install zip unzip

方式二:
yum -y install zip unzip

3.扩展命令 安装 卸载 更新

命令1:yum -y install [关键词]
命令2:yum -y remove [关键词]
命令3:yum -y update [关键词]

二、zip语法

该命令的语法如下:

zip [选项] 压缩包名 源文件或源目录列表

常用命令选项

-a, --ascii将文件转换为 ASCII 格式
-A, --adjust-sfx调整自解压可执行归档文件。通过将 SFX 存根添加到现有存档中首部,可以创建自解压缩的可执行存档
-b, --temp-path PATH指定暂时 zip 文件的目录
-c, --entry-comments为每一个被压缩的文件加上一行注释说明
-d, --delete删除压缩文件内指定的文件。例如 zip -d foo foo/tom/junk foo/harry/\* \*.o,将移除文件 foo/tom/junk以及所有以 foo/harry/ 开头的文件以及后缀为 .o 的文件
-db, --display-bytes显示已处理的字节和剩余的字节
-dc, --display-counts显示已压缩的条目数和剩余条目数
-dd, --display-dots压缩每个条目时显示进度条。进度条使用点表示,默认每个点表示压缩了 10MB
-dg, --display-globaldots显示整体压缩的进度条,而不是每个文件的进度条。默认每个点表示压缩了 10MB
-ds, --dot-size SIZE设置进度条中每个点表示已处理的文件大小,默认为 10MB。如果设置为 0 表示关闭进度条
-du, --display-usize显示每个条目未压缩的大小
-dv, --display-volume显示每个条目的卷(磁盘)号
-D, --no-dir-entries忽略目录
-DF, --difference-archive增量压缩,即压缩新增或更新的文件到旧的压缩归档中。应该从运行原始 zip 命令的相同目录运行,因为存储在 zip 归档中的文件路径信息会被保留
-e, --encrypt压缩时进行加密,输入的密码不会被打印出来
-f, --freshen增量压缩,只压缩更新的文件。应该从运行原始 zip 命令的相同目录运行,因为存储在 zip 归档中的文件路径信息会被保留
-F, --fix, -FF, --fixfix修复已损失的压缩文件。如果压缩文件的某些部分丢失,则可以使用 -F 选项来修复,但需要一个相当完整的中心目录。如果压缩文件损坏严重或者被截断,则需要 -FF 来修复
-FS, --filesync将存档的内容与操作系统上的文件进行同步。如果归档中的条目与操作系统上的文件不匹配,则删除该条目
-g, --grow向已存在的 zip 归档文件追加内容。如果此操作失败,zip 将尝试还原存档文件到其原始状态。如果恢复失败,则存档文件可能会被损坏
-h, -?, --help相识帮助信息并退出。当 zip 无参数运行时,等同于使用该选项,显示帮助信息
-h2, --more-help显示扩展的帮助信息,包括更多关于命令行格式、模式匹配和更多少用的选项
-i, --include FILES指定被压缩的文件
-j, --junk-paths不保留被压缩的文件的目录信息,只保留文件名
-J, --junk-sfx从存档中删除所有前置追加的数据(例如 SFX 存根)
-k, --DOS-names尝试转换名称和路径以符合 MSDOS,只存储 MSDOS 属性将条目标记为 MSDOS 下的条目
-l, --to-crlf将 Unix 的行尾字符 LF 转换成 MSDOS 约定的 CR LF。此选项不应用于二进制文件
la, --log-append附加到现有日志文件。默认是覆盖
-lf, --logfile-path LOGFILEPATH打开指定的日志文件
-li, --log-info在日志中包含更多信息,例如被压缩的文件名。默认情况下只包含命令行、警告和错误以及最终状态
-ll, --from-crlf作用于 -l 选项相反。将 MSDOS 的结束行 CR LF 转换为 Unix 的 LF。此选项不应用于二进制文件
-L, --license显示 zip 许可证
-m, --move将指定的文件移动到 zip 归档文件中。目标文件会被删除,如果目标文件所在的目录变成空目录,也会被删除
-MM, --must-match所有输入的模式至少匹配一个文件,且所有输入的文件必须可读,否则 zip 将返回 OPEN 错误并退出
-n, --suffixes SUFFIXES不要尝试压缩指定后缀的文件。这些文件只是简单地存储在输出 zip(0%压缩)
-nw, --no-wild不执行内部通配符的处理。注意 Shell 仍然会执行通配符的处理,除非对通配符使用了转义
-o, --latest-time将 zip 文件的最后修改时间更改为其所有条目中最近修改时间中最近的时间
-O, --output-file OUTPUT-FILE不更改现有 zip 文件,指定新输出的 zip 文件
-p, --paths在 zip 文件中存储文件的路径信息。该选项为默认选项,可以使用 -j 选项只存储文件名
-P, --password PASSWORD使用指定密码加密 zip 中的条目。注意,该操作不安全,因为密码可能会被其他用户通过查看历史命令窥探到,安全的做法是通过交互式输入不可打印的密码完成加密
-q, --quiet静默模式。消除各种消息和提示
-r, --recurse-paths递归压缩指定目录
-R, --recurse-patterns递归遍历当前目录
-s, --split-size SPLITSIZE指定 zip 归档文件被拆分的大小
-sb, --split-bellzip 暂停分隔归档文件时响铃提示
-sc, --show-command在 zip 启动和结束时,显示命令行
-sf, --show-files显示将要操作的文件,然后退出。例如,如果创建一个新的存档,它将列出将要添加的文件。如果该选项后跟 -,即 -sf-,仅输出到打开的日志文件。对于大列表,不建议使用屏幕显示
-so, --show-options显示 zip 所有可用的选项
-sp, --split-pause如果使用 -s 启用分割,则启用分割暂停模式
-su, --show-unicode类似于选项 -sf,但是如果存在 Unicode 版本的路径则显示
-sU, --show-just-unicode如果存在,只显示 Unicode 版本的路径,否则显示该路径的标准版本
-sv, --split-verbose输出拆分时的各种详细消息,显示如何进行拆分
-t, --from-date MMDDYYYY不对最后修改时间早于指定日期的文件进行操作。其中 MM 表示月(00-12),DD 表示每个月的日(01-31),YYYY 表示年
-T, --test检查新 zip 文件的完整性,如果检查失败,那么旧的 zip 文件不会被改变,且输入的文件不会被删除(如果使用 -m 选项)
-TT, --unzip-command CMD当使用选项 -T 时,使用指定的命令对 zip 归档文件进行检测,而不是使用默认的命令 unzip -tqq
-u, --update更新 zip 归档文件中被更新的条目
-U, --copy-entries将条目从一个 zip 存档复制到另一个存档。需要 --out 选项来指定与输入存档不同的输出文件
-UN, --unicode V确定 zip 如何处理 Unicode 文件名。V 可取值有:q 如果路径不匹配,则退出;w 警告,继续使用标准路径;i 忽略 继续使用标准路径;n 不使用 Unicode 路径
-v, --verbose详细模式或打印诊断与版本信息
-ws, --wild-stop-dirs通配符 * 只用于替换文件而不包含目录。如 /foo/bar/* 只会匹配 /foo/bar/file2.c,不会匹配 /foo/bar/dir/file1.c
-x, --exclude FILES显式排除指定的文件,如 zip -r foo foo -x \*.o,将排除目录 foo 下所有以 .o 结尾的文件。注意,星号需要转义,以免被 Shell 替换
-X, --no-extra不保存额外的文件属性
-y, --symlinks压缩存储符号链接本身而不是目标文件
-z, --archive-comment提示为整个 zip 归档文件输入多行注释。注释以仅包含一个点号的行结束或者输入 ^D。也可以从文件中获取注释,如 zip -z foo < foowhat
-Z, --compression-method CM设置默认的压缩算法。目前 zip 支持的主要算法是 store、deflate 和 bzip2
-#(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)使用指定的数字 # 调节压缩速度,其中 -0 表 示没有压缩,仅打包所有文件;-1 表示最快的压缩速度,压缩率较低;-9表示最慢的压缩速度,最佳的压缩效果;默认压缩级别为 -6
-@, --names-stdin从标准输入获取输入文件列表,每行一个文件

2.1、常用选项实例

结合实例讲解以下常用到的选项

选项作用
-r递归地将一个目录及其所有子目录和文件压缩到ZIP文件中
-q在压缩文件时启用静默模式,即不显示压缩过程的详细信息
-d从现有的ZIP文件中删除指定的文件或目录
-u用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中
-f用于刷新(更新)现有ZIP文件中的指定文件。
-m用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。
-e用于对ZIP压缩文件进行加密。
-z为压缩文件添加注释

2.1.1、-r (压缩文件夹,解决80%的场景)

注意: 上面列举的常用命令选项很多,若只是想要一个命令能压缩即可,那么zip -r 压缩包名.zip 文件1 文件2 文件n 这个命令就可以满足你的需求了。

例如:想将以下层级结构的文件压缩为zip包

/home/test
    	└─a.txt
    	└─b.log
    	└─test01
        	└─c.txt

场景一:压缩多个文件(最常用的命令,解决80%的场景)

如想把a.txt、b.log打包进zip文件中 ,进入/home/test目录后执行zip -r test.zip a.txt b.log 。压缩包内默认不包含当前目录

[root@centos test]# pwd
/home/test
[root@centos test]# ll
总用量 8
-rw-r--r--. 1 root root 11 911 23:32 a.txt
-rw-r--r--. 1 root root 23 911 23:56 b.log
drwxr-xr-x. 2 root root 19 914 15:55 test01
[root@centos test]# zip -r test.zip a.txt b.log
  adding: a.txt (stored 0%)
  adding: b.log (deflated 74%)
[root@centos test]# 

输出中 deflated 74% 表示压缩率为 74%,即压缩后的文件大小是原文件的 26%。在这里插入图片描述

场景二:压缩所有文件,并保留层级结构
将/home/test目录下的文件压缩成zip包,并将zip包存放在/home目录下,且zip包中保留目录层级结构

执行命令 zip -r /home/test.zip /home/test

[root@centos test]# zip -r /home/test.zip /home/test
  adding: home/test/ (stored 0%)
  adding: home/test/a.txt (stored 0%)
  adding: home/test/b.log (deflated 74%)
  adding: home/test/test01/ (stored 0%)
  adding: home/test/test01/c.txt (deflated 80%)

在这里插入图片描述

场景三:压缩所有文件,层级结构从test开始

进入home目录下后,然后执行命令 zip -r test.zip test

[root@centos home]# pwd
/home
[root@centos home]# ll
总用量 8
drwxr-xr-x.  3 root  root    46 914 15:38 test

[root@centos home]# zip -r test.zip test
  adding: test/ (stored 0%)
  adding: test/a.txt (stored 0%)
  adding: test/b.log (deflated 74%)
  adding: test/test01/ (stored 0%)
  adding: test/test01/c.txt (deflated 80%)
[root@centos home]# 

在这里插入图片描述

场景四:压缩指定类型的文件
压缩当前目录下所有.txt结尾的文件

[root@centos test]# ll
总用量 8
-rw-r--r--. 1 root root 11 911 23:32 a.txt
-rw-r--r--. 1 root root 23 911 23:56 b.log
drwxr-xr-x. 2 root root 19 914 15:55 test01
[root@centos test]# zip -r test.zip  *.txt
  adding: a.txt (stored 0%)
[root@centos test]# 

在这里插入图片描述

场景五:压缩文件并排除指定文件
压缩test目录下的文件,排除test01目录 -x 指定排除目录,注意没有双引号将不起作用。

[root@centos test]# zip -r test.zip /home/test -x "/home/test/test01/*"
  adding: home/test/ (stored 0%)
  adding: home/test/a.txt (stored 0%)
  adding: home/test/b.log (deflated 74%)
[root@centos test]# zip -r test.zip /home/test -x /home/test/test01/*
  adding: home/test/ (stored 0%)
  adding: home/test/a.txt (stored 0%)
  adding: home/test/test01/ (stored 0%)
  adding: home/test/b.log (deflated 74%)
[root@centos test]# 

注意:-x排除目录需要加上双引号,若不加双引号,会把空文件夹打包进来,如上面的日志

场景六:压缩文件并忽略指定文件
与上面的-x参数功能相似

[root@centos test]# zip -r test.zip /home/test --exclude "/home/test/test01/*"
updating: home/test/ (stored 0%)
updating: home/test/a.txt (stored 0%)
updating: home/test/b.log (deflated 74%)

2.1.2、-q

-q选项:压缩文件时不显示压缩过程的详细信息。

[root@centos test]# zip -r test.zip a.txt b.log  test01
  adding: a.txt (stored 0%)
  adding: b.log (deflated 74%)
  adding: test01/ (stored 0%)
  adding: test01/c.txt (deflated 80%)
[root@centos test]# zip -q -r test.zip a.txt b.log  test01
[root@centos test]# 

可以看到,当添加-q选项后,就不打印压缩日志了。

2.1.3、-d(从压缩文件中删除指定文件)

-d选项:(d是delete的缩写)从现有的ZIP文件中删除指定的文件或目录,可以从ZIP存档中删除不需要的文件或目录。

[root@centos test]# zip -d test.zip /home/test/a.txt
deleting: home/test/a.txt
[root@centos test]# 

2.1.4、-u(更新文件)

-u选项:用于更新现有的ZIP文件,将新的文件或修改后的文件添加到ZIP存档中。

语法:zip -u  <压缩文件名>  <目录/文件>
示例:zip -u test.zip t3.txt

解释:如果test.zip压缩文件中没有t3.txt,则test.zip中会增加新文件t3.txt;如果有t3.txt,则会替换test.zip压缩文件中的旧t3.txt为新的t3.txt。

2.1.5、-f

-f选项:用于刷新(更新)现有ZIP文件中的指定文件。

语法:zip -f <压缩文件名> <要刷新(更新)的文件>
示例:zip -f test.zip t3.txt。

解释:更新test.zip压缩文件中的t3.txt文件,如果test.zip压缩文件存在该文件则会更新此文件;如果不存在则不会执行任何操作(即命令为无效命令)。

需要注意的是:使用-f选项仅更新ZIP文件中指定文件,而不会添加新文件或删除文件。如果在ZIP文件中不存在要刷新(更新)的文件,则该选项不会执行任何操作。

这里我们要对zip -f和zip -u之间的区别,二者都是用于更新现有的ZIP文件,但它们的行为略有不同。不同点如下:

zip -f:只更新已存在于ZIP文件中的文件,不会添加新文件。不会添加、不会添加、不会添加(重要的事情说三遍)。
zip -u:可以添加新文件并更新已存在的文件。

2.1.6、-m

-m选项:用于移动(归档)文件到一个ZIP压缩文件中,并在移动后将源文件删除。

[root@centos test]# ls
a.txt  b.log  test01
[root@centos test]# zip -m test.zip a.txt b.log 
  adding: a.txt (stored 0%)
  adding: b.log (deflated 74%)
[root@centos test]# ls
test01  test.zip
[root@centos test]# 

2.1.7、-e(加密)

-e选项:用于对ZIP文件进行加密。
示例:zip -e test.zip a.txt b.log
解释:压缩a.txt和b.log到压缩文件test.zip中,并将其保存为加密的ZIP文件。
在这里插入图片描述

2.1.8、-z(添加注释)

-z选项:为压缩文件添加注释。
命令格式:zip -z <添加注释的压缩文件>

在这里插入图片描述
注意:按回车可以继续输入,直到某一行单独出行了英文的.才会结束,如上图,注释后面有.但是没结束,直到单独输入了.之后才结束的

三、unzip解压文件

该命令的语法如下:

unzip [选项] 压缩包名 源文件或源目录列表

常用命令选项

参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
unzip *.zip -d /目录

3.1、解压缩文件实例

场景一 :解压到指定目录
将/home下面的test.zip解压到/home/demo目录下

unzip /home/test.zip -d /home/demo

场景二:查看压缩包中的文件
unzip -l 命令只查看不解压。
在这里插入图片描述

[root@centos test]# unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  09-14-2023 17:15   home/test/
       11  09-11-2023 23:32   home/test/a.txt
        0  09-14-2023 15:55   home/test/test01/
       30  09-11-2023 23:57   home/test/test01/c.txt
       23  09-11-2023 23:56   home/test/b.log
---------                     -------
       64                     5 files
[root@centos test]# 

四、常见问题

4.1、CentOS7中命令找不到

-Bash: Unzip: Command Not Found

解决方法

# 安装zip /unzip
yum install -y unzip zip

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode1797. 设计一个验证系统(java)

设计一个验证系统 题目描述哈希表题目描述 题目描述 难度 - 中等 leetcode1797. 设计一个验证系统 你需要设计一个包含验证码的验证系统。每一次验证中&#xff0c;用户会收到一个新的验证码&#xff0c;这个验证码在 currentTime 时刻之后 timeToLive 秒过期。如果验证码被更新…

XGBoost算法讲解和公式推导

本文节选自《机器学习入门基础&#xff08;微课版&#xff09;》 10.5 XGBoost 算法 XGBoost 是 2014 年 2 月由华盛顿大学的博士生陈天奇发明的基于梯度提升算法(GBDT)的机器学习算法&#xff0c;其算法不但具有优良的学习效果&#xff0c;而且训练速度高效&#xff0c;在数据…

Linux下的系统编程——线程同步(十三)

前言&#xff1a; 在多线程编程中&#xff0c;如果多个线程同时访问和修改共享资源&#xff0c;可能会产生竞争条件和数据不一致的问题。同步机制用于协调线程之间的访问和操作&#xff0c;确保数据的正确性和一致性。为了避免多个线程同时访问和操作共享资源导致的问题&#…

小程序键盘没有【小数点】输入

<input v-model"formData.number" :auto-height"true" placeholder"请输入" confirm-type"done" type"digit" maxlength"11" input"inputNumber" />number&#xff1a;数字键盘&#xff08;没有小…

Minitab Express for Mac(数据分析软件)附破解补丁 v1.5.0 支持M1

Minitab Express是一款专为Mac用户设计的数据分析和统计软件。它提供了一套全面的工具和功能&#xff0c;用于分析数据、执行统计计算和生成可视化。 下载&#xff1a;Minitab Express for Mac(数据分析软件)附破解补丁 以下是 Minitab Express for Mac 的一些主要功能&#x…

随机森林案例分析

阅读随机森林模型前&#xff0c;建议首先阅读决策树模型手册&#xff08;点击后跳到决策树模型的帮助手册页面&#xff09;&#xff0c;因为随机森林模型实质上是多个决策树模型的综合&#xff0c;决策树模型只构建一棵分类树&#xff0c;但是随机森林模型构建非常多棵决策树&a…

数字虚拟人制作简明指南

如何在线创建虚拟人&#xff1f; 虚拟人&#xff0c;也称为数字化身、虚拟助理或虚拟代理&#xff0c;是一种可以通过各种在线平台与用户进行逼真交互的人工智能人。 在线创建虚拟人变得越来越流行&#xff0c;因为它为个人和企业带来了许多好处。 推荐&#xff1a;用 NSDT编辑…

阿里云无影云电脑和传统PC有什么区别?

阿里云无影云电脑和传统电脑PC有什么区别&#xff1f;区别大了&#xff0c;无影云电脑是云端的桌面服务&#xff0c;传统PC是本地的硬件计算机&#xff0c;无影云电脑的数据是保存在云端&#xff0c;本地传统PC的数据是保存在本地客户端&#xff0c;阿里云百科分享阿里云无影云…

低代码与低代码平台

随着数字化转型和软件需求的不断增长&#xff0c;传统的手写代码开发方式已经无法满足迅速推出应用程序的需求。为了加快软件开发的速度并降低技术门槛&#xff0c;低代码开发模式应运而生。本文将介绍低代码的概念&#xff0c;探讨什么是低代码、什么是低代码平台&#xff1f;…

RFID设备在自动化堆场中的管理应用

随着信息技术的高速发展&#xff0c;带动了港口生产和管理技术的长足进步&#xff0c;港口堆场内的自动化场桥的智能化水平成为码头提高生产率一个重要标签。各地海关着力于现代化科技手段&#xff0c;努力构筑新型的便捷通关模式&#xff0c;在进出口环节做好管理和服务。 全…

已解决 Kotlin Error: Type mismatch: inferred type is String but Int was expected

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

idea之maven的安装与配置

我们到maven的官网里下载maven&#xff0c;地址&#xff1a;https://maven.apache.org/download.cgi下载完成后解压即可配置环境变量 此电脑–>右键–>属性–>高级系统设置–>环境变量–>系统变量&#xff08;S&#xff09;–>新建一个系统变量 变量名&…

【开发记录01】开发环境副本/页的导入&带用户权限管理系统

在蒋老师的指导下大概了解了: 1.开发环境的数据导入/导出 共享组件的同步 因为应用程序277是应用程序100的子程序&#xff0c;所以共享组件必须和100保持一致。 但是会出现一个小问题&#xff1a; 在APEX开发过程中同时打开两个不同的应用程序&#xff0c;但是编辑过程中经…

Java 华为真题-猴子爬山

需求&#xff1a; 一天一只顽猴想去从山脚爬到山顶&#xff0c;途中经过一个有个N个台阶的阶梯&#xff0c;但是这猴子有一个习惯&#xff1a;每一次只能跳1步或跳3步&#xff0c;试问猴子通过这个阶梯有多少种不同的跳跃方式&#xff1f; 输入描述 输入只有一个整数N&#xff…

Python - 小玩意 - 键盘记录器

pip install keyboardimport keyboard import timedef get_time():date_time time.strftime("%Y-%m-%d %H:%S", time.localtime())return date_timedef abc(x):if x.event_type down:print(f"{get_time()}你按下了{x.name}")with open(./键盘记录器.txt,…

CG Magic分享同一场景里下,VR渲染器和CR渲染器哪个好?

渲染操作时&#xff0c;VR渲染器和CR渲染器的对比成为常见问题了。这个问题很多人都会问。 今天CG Magic小编通过一个真实的项目&#xff0c;就是同一场景下来比较一下VR渲染器和CR渲染器的区别。 以下图为例是用来测试的场景当年的最终图。采用了当年的一个伊丽莎白大街152号的…

SwiftUI 导航设置

文章目录 一、导航跳转二、导航设置三、Present跳转&#xff08;模态跳转&#xff09;四、返回页面 一、导航跳转 页面A import SwiftUIstruct NavJumpAView: View {State var isNavPush falsevar body: some View {NavigationView {VStack {NavigationLink(isActive: $isNa…

Epub如何转换成PDF格式,收藏好着两个工具!不要太简单~

你是不是经常遇到这样的情况&#xff1a;你下载了一本很想看的Epub格式的电子书&#xff0c;但是你的电脑或者手机没有支持Epub格式的阅读器&#xff0c;或者你觉得Epub格式的阅读效果不够好&#xff0c;你想要将它转换为PDF格式&#xff0c;但是你又不知道用什么软件或者网站可…

6-2 pytorch中训练模型的3种方法

Pytorch通常需要用户编写自定义训练循环&#xff0c;训练循环的代码风格因人而异。&#xff08;养成自己的习惯&#xff09; 有3类典型的训练循环代码风格&#xff1a;脚本形式训练循环&#xff0c;函数形式训练循环&#xff0c;类形式训练循环。 下面以minist数据集的多分类模…

Git --- 基础介绍

Git --- 基础介绍 git 是什么git --- 工作区, 暂存区, 资源库git --- 文件状态git --- branch 和 HEADgit --- 一次正常的git提交流程 git 是什么 Git是一款分布式源代码管理工具(版本控制工具)Git和其他传统版本控制系统比较: 传统的版本控制系统(例如 SVN)是基于差异的版本控…