7z命令行参数中的路径

简介:

最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下。本文中所有demo使用的7z版本为:15.14 x64。

压缩某个文件夹

下面的命令会把g:\temp\目录和目录下的所有文件打包到压缩文件abc.zip中。

7z.exe a abc.zip g:\temp\

注意,此时压缩包中是包含temp目录的。

当我们解压缩abc.zip文件时就会发生一件比较有趣的事。无论通过右键菜单中windows提供的”Extract All…”还是7z提供的”Extract files…”,默认都会给解压缩的文件添加一级目录即abc。

多出的这级目录可能是我们想要的,可能不是。如果不是,我们可以在上面的UI界面中把它去掉。

或者你可以使用命令行解压它:

7z.exe x abc.zip –og:\

你能相信吗,解压出来的文件路径中并没有abc这级目录!

压缩某个文件夹下的所有文件

由于通过UI解压缩时默认会生成一级以压缩文件名命名的目录,为了在解压后不改变目录树的结构。我们可以考虑在压缩时,只添加根目录下的所有文件而不添加根目录,然后以根目录的名称命名压缩文件。

7z.exe a g:\temp.zip g:\temp\*

此时,压缩包中将不包含temp目录。

这样,我们通过UI默认解压出来的文件路径和压缩前是一致的。

但是,如果使用命令行解压就得手动添加上一级目录:

7z.exe x g:\temp.zip –og:\temp

接下来让人意想不到的事情再次发生了,当我们使用相对目录执行压缩命令时:

G:\> 7z.exe a g:\temp.zip temp\*

压缩包中仍然出现了temp目录。查询7z的文档后才知道,在这种情况下,要使用相对路径,需要这样写:

G:\> 7z.exe a g:\temp.zip .\temp\*

在压缩包中包含压缩目录的父目录

还有一种情况,就是我们在压缩一个目录时,希望把它的父目录信息也保存到压缩包里。注意,压缩包里只有父目录而不包含父目录中的其他文件。这时就必须使用相对目录了:

G:\>7z.exe a g:\temp.zip temp\test\

这样,压缩包中文件的根目录就是temp了。

文件列表

当执行压缩命令时,除了指定目录外还可以指定一个或者多个文件。如果要指定多个文件/目录,最好的方法是把这些文件/目录的名称写到一个文本文件中,然后把这个文本文件作为命令行参数。这个文本文件就称为文件列表,在参数中引用它时需要在文件名前面添加一个特殊的符号’@’。

G:\>7z.exe a g:\abc.zip –i@g:\list.txt 

-i表示list.txt中罗列的文件和目录会被添加到压缩包中。

文件列表中可以写文件的绝对路径,也可以写相对路径。需要注意的是,如果写相对路径,是相对于当前工作目录的路径,而不是相对于list.txt的路径。

文件列表中既可以罗列单个文件的路径,也可以罗列目录的路径。注意区分相对路径和绝对路径,其规则和前文所述相同。

 

除了包含指定的目录/文件,还可以排除指定的目录/文件。

G:\>7z.exe a g:\temp.zip g:\temp\ -x@g:\temp\list.txt

-x表示list.txt文件中列出的文件和目录不会添加的压缩包中。

注意:排除列表中只能使用相对目录。


本文转自sparkdev博客园博客,原文链接:http://www.cnblogs.com/sparkdev/p/5598062.html,如需转载请自行联系原作者

相关文章
|
存储 人工智能 移动开发
7zip 命令使用手册
本文中介绍的命令使用方式在所有安装了7zip的系统平台上使用方式一致。 在 Windows 系统上,你可以直接去观官网下载 7zip 安装包根据提示进行安装,但是若要使用7z命令,一定需要手动将 7zip 的安装目录添加到系统的Path环境变量。 在Linux上,请确包你使用的是 原版7zip 而非 p7zip,在Linux系统上的安装可以参考我的博文《如何在 Linux 系统中安装和使用 7zip》(实际上,本文节选自该博文)
2060 0
|
Android开发 Windows
windows下用qemu搭建android
1.下载Qemu for windows 版本为qemu-0.9.0-windows 2.下载qemuwith-kqemu-support 安装kqemu的目的就是为了加快qemu的子系统运行速度.在X86的硬件平台上模拟x86的操作系统可以飙到真实机器速度. 直接用QEMU来安装或者运行系统的话,速度会很慢.用kqemu会改善很多.右键点击kqemu.inf,选择“安装”,然后在CMD窗口下输入命令:net start kqemu。
4642 0
|
Linux Docker 容器
.net Core WebApi发布到Docker并推送到阿里云容器服务
.net Core WebApi发布到Docker并推送到阿里云容器服务
1259 0
.net Core WebApi发布到Docker并推送到阿里云容器服务
|
2月前
|
人工智能 测试技术 数据安全/隐私保护
OpenAI 官宣弃用 SWE-bench Verified:代码能力“金标准”为何被撤?测试工程师该关注什么
OpenAI宣布弃用SWE-bench Verified代码评测基准,因其存在测试设计缺陷与训练数据污染问题,导致评估失真;转而推荐更严格、抗记忆、近真实的SWE-bench Pro,标志AI评估体系进入自我修正与方法论升级新阶段。
|
11月前
|
Linux 虚拟化 iOS开发
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
526 27
AlmaLinux 10 x86_64 OVF (sysin) - VMware 虚拟机模板
|
运维 监控 安全
高效运维管理:提升系统稳定性的策略与实践
【10月更文挑战第13天】 本文探讨了高效运维管理的关键策略和实践,旨在帮助运维团队提升系统的稳定性。通过分析常见问题,提出具体的解决方案,包括监控与告警、自动化工具的应用、故障排查与恢复、性能优化以及安全防护等方面。通过这些策略和实践,可以帮助企业构建一个稳定、可靠且高效的IT系统。
617 1
|
图形学
【unity小技巧】最简单的FPS游戏准心跳动动画控制
【unity小技巧】最简单的FPS游戏准心跳动动画控制
486 0
|
机器学习/深度学习 数据采集 算法
特征工程与数据预处理全解析:基础技术和代码示例
在机器学习和数据科学的世界里,数据的质量是建模成功与否的关键所在。这就是特征工程和数据预处理发挥作用的地方。本文总结的这些关键步骤可以显著提高模型的性能,获得更准确的预测,我们将深入研究处理异常值、缺失值、编码、特征缩放和特征提取的各种技术。
519 0
|
机器学习/深度学习 XML 人工智能
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性
Prompt进阶系列5:LangGPT(提示链Prompt Chain)--提升模型鲁棒性
|
存储 安全 Shell
Android系统 adb shell auth授权使用
Android系统 adb shell auth授权使用
2058 2

热门文章

最新文章