在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.tartar -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.gztar -czvf project_backup.tar.gz MyProject
- 示例: 打包并压缩
-
创建 .tar.xz (使用 xz 压缩,通常压缩率更高但更慢):
在-c和-f参数之间添加-J参数 (大写字母 J)。tar -cJvf <生成的压缩包名称.tar.xz> <要打包的文件或目录...>
- 示例: 打包并使用 xz 压缩
MyProject目录到project_backup_small.tar.xztar -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