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会在遇到冲突时报错并保留原文件。