在Windows命令提示符中,使用
tar -cvf 压缩包名.tar 文件或目录
命令可打包文件及目录,适用于Windows 10及更新系统。
“黑窗口”,也就是 Windows 的命令提示符 (cmd.exe
) 或 PowerShell,是系统管理员和开发者常用的强大工具,虽然 Windows 传统上更常用 ZIP 压缩,但自 Windows 10 1803 版本起,微软已原生内置了 tar
命令工具,无需额外安装即可直接使用。tar
命令在跨平台文件归档(尤其是与 Linux/Unix 系统交互)、保留文件权限和符号链接信息方面非常有用,本文将详细介绍如何在 Windows 黑窗口中使用 tar
命令创建 .tar
归档包。
重要前提:确认你的 Windows 版本
- 请确保你的 Windows 系统是 Windows 10 版本 1803 (April 2018 Update) 或更高版本,或者 Windows 11,在这些版本中,
tar
命令是默认可用的。 - 如何检查?在命令提示符或 PowerShell 中直接输入
tar --version
并按回车,如果看到类似tar (GNU tar) 1.XX
或bsdtar XX.X.X ...
的版本信息,说明tar
已安装可用,如果提示'tar' 不是内部或外部命令...
,则说明你的系统版本过旧,需要升级系统或寻找第三方tar
工具(如 7-Zip 的命令行版本)。
基础打包命令:创建 .tar 归档
tar
命令的核心功能是将多个文件和目录“打包”成一个单一的 .tar
文件(称为“tarball”),这个 .tar
文件本身不进行压缩,只是归档,基本语法如下:
tar -cvf <生成的tar包名称.tar> <要打包的文件或目录1> <要打包的文件或目录2> ...
参数详解:
-c
: Create 的缩写,表示创建一个新的归档文件,这是打包操作的核心参数。-v
: Verbose 的缩写,表示在打包过程中显示详细信息(正在处理的文件/目录名),这个参数是可选的,加上它可以看到进度,不加则静默执行。-f
: File 的缩写,后面必须紧跟你要创建的.tar
文件的名称(包括路径),这个参数是必需的,它告诉tar
命令操作哪个文件。<生成的tar包名称.tar>
: 指定你希望创建的.tar
文件的完整路径和名称。myarchive.tar
,C:\backups\project_backup.tar
。强烈建议使用.tar
作为扩展名,这是标准做法。<要打包的文件或目录1> <要打包的文件或目录2> ...
: 列出所有你想要包含进这个 tar 包的文件或目录的路径,你可以指定多个,用空格隔开,可以使用相对路径(相对于当前工作目录)或绝对路径。
操作步骤与示例:
-
打开命令提示符(黑窗口):
- 按
Win + R
键,输入cmd
,然后按回车。 - 或者在开始菜单搜索 “cmd” 或 “命令提示符” 并打开。
- 按
-
导航到工作目录(可选但推荐):
使用cd
命令切换到包含你要打包的文件/目录的父目录,或者你希望生成 tar 包存放的目录,这可以简化路径输入。- 要打包
D:\MyProject
目录,并希望 tar 包也生成在D:\
下:D: cd \
- 要打包
-
执行打包命令:
-
示例 1:打包单个目录(
D:\MyProject
)到当前目录下的project_backup.tar
tar -cvf project_backup.tar D:\MyProject
或者,如果你已经在
D:\
下:tar -cvf project_backup.tar MyProject
加上
-v
参数,你会看到屏幕上滚动显示MyProject\
,MyProject\file1.txt
,MyProject\subdir\
,MyProject\subdir\file2.jpg
等被添加进归档的信息。 -
示例 2:打包多个特定文件和目录到指定路径的 tar 包
tar -cvf C:\Archives\important_files.tar "D:\Documents\report.docx" "D:\Pictures\vacation" "C:\Users\YourName\notes.txt"
这个命令将:
- 把
D:\Documents\report.docx
(文件) - 把
D:\Pictures\vacation
(整个目录及其内容) - 把
C:\Users\YourName\notes.txt
(文件)
打包成一个名为important_files.tar
的归档文件,并保存到C:\Archives\
目录下。 - 注意路径中的空格: 如果文件或目录路径包含空格,必须用双引号 将整个路径括起来,否则命令会出错。
- 把
-
进阶:打包时直接压缩 (创建 .tar.gz 或 .tar.xz)
虽然 .tar
只是归档,但 tar
命令可以方便地结合压缩程序(gzip
或 xz
,它们也内置在较新 Windows 中)一步到位地创建压缩包,这是更常见的用法。
-
创建 .tar.gz (使用 gzip 压缩):
在-c
和-f
参数之间添加-z
参数。tar -czvf <生成的压缩包名称.tar.gz> <要打包的文件或目录...>
- 示例: 打包并压缩
MyProject
目录到project_backup.tar.gz
tar -czvf project_backup.tar.gz MyProject
- 示例: 打包并压缩
-
创建 .tar.xz (使用 xz 压缩,通常压缩率更高但更慢):
在-c
和-f
参数之间添加-J
参数 (大写字母 J)。tar -cJvf <生成的压缩包名称.tar.xz> <要打包的文件或目录...>
- 示例: 打包并使用 xz 压缩
MyProject
目录到project_backup_small.tar.xz
tar -cJvf project_backup_small.tar.xz MyProject
- 示例: 打包并使用 xz 压缩
关键技巧与注意事项:
-
排除文件/目录: 使用
--exclude=<模式>
参数,可以多次使用,模式支持通配符 (匹配任意字符) 和 (匹配单个字符)。- 示例: 打包
MyProject
目录,但排除所有.log
文件和tmp
子目录:tar -cvf project_no_logs.tar --exclude=*.log --exclude=MyProject\tmp MyProject
- 注意排除目录时,路径要相对于被打包的目录(这里是
MyProject
)。--exclude=tmp
可能无法正确排除MyProject
下的tmp
,最好指定相对路径MyProject\tmp
或使用模式--exclude=*/tmp
。
- 注意排除目录时,路径要相对于被打包的目录(这里是
- 示例: 打包
-
处理路径和空格: 这是 Windows 下最常见的错误来源。
- 绝对路径 vs 相对路径: 理解你当前的工作目录 (
cd
命令查看) 很重要,使用相对路径通常更简洁,但绝对路径更明确,如果路径包含空格、中文或其他特殊字符,务必用双引号 将整个路径包裹起来。
- 绝对路径 vs 相对路径: 理解你当前的工作目录 (
-
权限问题: 如果你尝试打包系统文件或受保护的用户目录(如
C:\Users\SomeUser\Documents
)而遇到“Permission Denied”错误,你需要以管理员身份运行命令提示符,右键点击“命令提示符”图标,选择“以管理员身份运行”。 -
验证打包结果: 打包完成后,可以使用
dir
命令查看生成的.tar
或.tar.gz
/.tar.xz
文件大小,更严谨的验证是使用tar -tvf <包文件名>
命令列出归档内容(-t
表示 list,-v
详细,-f
指定文件)。
为什么在 Windows 上用 tar?
- 跨平台兼容性:
.tar
,.tar.gz
,.tar.xz
是 Linux/Unix/macOS 系统的标准归档格式,在 Windows 上原生支持tar
极大方便了与这些系统的文件交换。 - 保留元数据: 相比简单的 ZIP,
tar
能更好地保留文件的原始属性(如权限、所有权、符号链接、时间戳等),这对于备份、部署或迁移到类Unix系统尤其重要。 - 脚本化与自动化: 命令行工具天然适合集成到批处理脚本 (
.bat
) 或 PowerShell 脚本中,实现自动化备份、部署流程。 - 高效处理大量小文件: 对于包含成千上万个小文件的目录,
tar
归档后再压缩有时比直接压缩目录更高效。
掌握 Windows 内置的 tar
命令,让你在“黑窗口”中也能轻松创建标准的 .tar
归档包以及压缩的 .tar.gz
/.tar.xz
包,记住核心参数组合 -cvf
(创建归档),-czvf
(创建gzip压缩包),-cJvf
(创建xz压缩包),并注意处理带空格的路径(使用双引号),结合 --exclude
进行过滤,这个工具就能满足你在 Windows 环境下进行文件归档、备份和跨平台传输的基本需求,善用 -v
参数查看进度,用 tar -tvf
验证结果,让你的打包操作更加可靠。
引用与参考说明:
- 本文所述
tar
命令功能基于 Microsoft 在 Windows 10 (1803+) 及 Windows 11 中内置的 tar 实现 (通常是 BSD tar 或 GNU tar 的移植版本),具体行为可能因 Windows 版本和更新略有差异。 tar
命令的通用语法和参数标准遵循 POSIX 规范 以及 GNU tar 或 BSD tar 的常见用法。tar
命令更详尽的参数说明和高级用法,可以参考:- Microsoft 官方文档 (命令行参考): 虽然 Microsoft 没有单独的
tar
深度文档,但其基本支持是系统功能的一部分,可通过在命令提示符运行tar --help
查看内置帮助。 - GNU tar 手册: 这是最全面和权威的参考之一,适用于理解
tar
的通用概念和高级特性 (即使 Windows 内置版本可能不是完整的 GNU tar),在线版本可在 GNU 项目网站找到。 - BSD tar 手册页 (man page): 对于理解 BSD 系
tar
实现的特性也有参考价值。
- Microsoft 官方文档 (命令行参考): 虽然 Microsoft 没有单独的
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7834.html