tar - 创建、查看和提取归档

tar 把多个文件和目录保存为一个归档,也可以列出或提取归档成员。压缩是可选步骤,常与 gzip 配合。

常用参数

参数作用
-c--create创建归档
-t--list列出归档内容
-x--extract提取归档
-f FILE--file=FILE指定归档文件
-C DIR--directory=DIR切换目录后再处理
-z--gzip使用 gzip 压缩或解压
-v--verbose显示处理过程
--exclude=PATTERN排除匹配项目
-k--keep-old-files提取时拒绝覆盖已有文件

创建归档

# 创建未压缩归档
tar -cf project.tar project/
 
# 创建 gzip 压缩归档
tar -czf project.tar.gz project/
 
# 排除临时文件
tar -czf project.tar.gz --exclude='*.tmp' project/
 
# 只打包目录中的内容,不增加外层目录
tar -czf project-content.tar.gz -C project .

查看与提取

先查看成员列表,再提取到新建的专用目录:

tar -tf project.tar.gz
 
mkdir extracted-project
tar -xzf project.tar.gz -C extracted-project --keep-old-files

提取单个成员:

tar -xzf project.tar.gz -C extracted-project project/README.md

安全提示

  • 不可信归档可能包含绝对路径、..、符号链接、设备文件或危险权限。应先列出内容,并以普通用户提取到空目录。
  • 不要对不可信归档使用 --absolute-names-P)、--overwrite 或权限保留选项。
  • --remove-files 会在归档后删除源文件,不适合作为通用示例;确认备份可读取且另有副本前不要使用。
  • 归档成功不等于备份可靠。重要数据仍需校验、异地副本和实际恢复演练。
  • 提取到已有目录时可能与现有文件冲突;--keep-old-files 会在遇到冲突时报错并保留原文件。

参考资料