当前位置: 首页 > news >正文

Linux 下 tar 命令归档与压缩完整指南

存档文件是包含多个文件的单个常规文件或设备文件,可用于创建可管理的个人备份,或者在其他方法(如 rsync)不可用时简化通过网络传输文件的任务。在 Linux 系统中,tar实用程序是用于创建、管理和提取存档的常用命令。

存档文件可以使用或不使用压缩:

  • 不使用压缩:仅将多个文件打包成一个文件,大小基本不变
  • 使用压缩:通过压缩算法减小存档文件体积

tar 命令基础操作

必需的操作选项

执行 tar 操作需要以下命令操作之一:

  • -c--create:创建存档文件
  • -t--list:列出存档的内容
  • -x--extract:提取存档

常用选项

  • -v--verbose:显示在 tar 操作期间存档或提取的文件
  • -f--file:指定要创建或打开的存档文件名
  • -p--preserve-permissions:提取时保留原始文件权限
  • --xattrs:启用扩展属性支持,存储扩展的文件属性
  • --selinux:启用 SELinux 上下文支持,存储 SELinux 文件上下文

创建存档文件

基本创建命令

要使用tar命令创建存档,使用createfile选项,并将存档文件名作为第一个参数,后跟要纳入存档的文件和目录列表。

1

tar-cf mybackup.tarmyapp1.log myapp2.log myapp3.log

重要特性

  • tar命令可识别绝对和相对文件名语法
  • 默认情况下,tar从绝对文件名中删除前导正斜杠 (/) 字符,使用相对路径名在内部存储文件
  • 这种技术更为安全,因为使用相对路径名存档文件时,可以将文件提取到新目录而不会覆盖现有文件

权限要求

用户必须具有被归档的目标文件的读取权限。例如,在/etc目录中创建归档需要 root 特权,因为只有特权用户才能读取所有/etc文件。

查看存档内容

使用tar命令的t选项可列出通过f选项指定的存档中的文件名:

1

tar-tf/root/etc.tar

文件是使用相对名称语法列出的,因为在存档创建期间删除了前导的正斜杠。

提取存档内容

基本提取命令

1

tar-xf/root/etc.tar

最佳实践:将 tar 存档提取到空白目录中,以免覆盖现有的文件。

权限处理

  • 当 root 用户提取存档时,提取的文件会保留原始的用户和组所有权
  • 如果是常规用户提取文件,则该用户将成为所提取文件的所有者
  • 从存档中提取文件时,当前的 umask 用于修改提取的每个文件的权限
  • 使用tar命令的p选项可保留提取的文件的原始存档权限

1

tar -xpf /home/user/myscripts.tar

压缩存档

支持的压缩算法

tar命令支持多种压缩方式:

  • gzip 压缩(选项:-z
    • 最快的旧方法,跨平台广泛使用
    • 生成.tar.gz.tgz后缀
  • bzip2 压缩(选项:-j
    • 可创建较小的存档,但使用不如 gzip 广泛
    • 生成.tar.bz2后缀
  • xz 压缩(选项:-J
    • 更新的技术,提供的压缩率在可用方法中最好
    • 生成.tar.xz后缀

创建压缩存档示例

1

2

3

4

5

6

# 使用 gzip 压缩

tar-czf/root/etcbackup.tar.gz/etc

# 使用 bzip2 压缩

tar-cjf/root/logbackup.tar.bz2/var/log

# 使用 xz 压缩

tar-cJf/root/sshconfig.tar.xz/etc/ssh

验证压缩存档内容

创建存档后,使用tar命令的tf选项来验证其内容。列出压缩存档文件时,不需要指定压缩选项,因为压缩类型是从存档标头中读取的:

1

tar-tf/root/etcbackup.tar.gz

提取压缩存档

tar命令可以自动确定使用的压缩方式,因此不需要指定压缩选项:

1

tar-xf/root/etcbackup.tar.gz

注意:如果包含了不正确的压缩类型,tar将报告指定的压缩类型与文件的类型不匹配。

独立压缩工具

gzipbzip2xz算法也作为独立命令实施,用于在不创建归档的前提下压缩单个文件。但这些命令不允许在创建的单个压缩文件中包含多个文件。

查看压缩文件信息

gzipxz命令提供了-l选项,可用于查看压缩的单个文件或归档文件的未压缩大小:

1

2

gzip-lfile.tar.gz

xz -lfile.xz

在解压缩或提取文件之前,使用此选项来验证是否有足够的可用空间。

http://www.jsqmd.com/news/582212/

相关文章:

  • 机器人通信协议全览:30种核心技术解析
  • Wan2.2-I2V-A14B低代码集成:在Dify平台上快速构建图像转视频AI应用
  • IwrQk:跨平台Iwara视频社区客户端全攻略
  • 大模型落地实战:从POC到生产环境的坑与对策
  • StructBERT情感分类-中文-通用-base部署教程:模型权重文件路径说明
  • 当测试工程师遇见神经科学:脑电波bug检测实验
  • Cortex-M分析
  • QMCDecode:革新性QQ音乐加密格式转换工具,突破平台限制实现音频自由
  • Linux命令中的mtr命令详解
  • Windows和Office激活终极解决方案:KMS_VL_ALL_AIO完全指南
  • 定制化铸铁试验平台,适配各类试验场景需求
  • SecLists使用教程
  • 如何彻底掌控你的微信聊天数据?WeChatMsg完全免费解决方案
  • 企业数转如何达到L7?
  • 你的微信记忆银行:三分钟学会永久保存珍贵聊天记录
  • 使用 Applications Manager 实现 AWS 云监控:保障业务应用高效运行
  • 像素剧本圣殿实操手册:导出标准Final Draft格式剧本的完整流程
  • 八大网盘直链提取终极指南:突破客户端限制的JavaScript神器
  • VS2022解决找不到属性管理器,只有属性窗口
  • 显卡驱动彻底清理指南:使用DDU解决90%的显示问题
  • linux设备驱动阻塞IO应用 _
  • 《施耐德商品详情页前端性能优化实战》
  • 靠谱个人债务公司排名银行逾期处理律所选择指南 - 代码非世界
  • 告别卡顿扫描,用快马平台生成高效多线程c盘清理工具代码
  • QKeyMapper终极指南:如何在不重启Windows的情况下彻底改变你的按键习惯
  • 边墙排风机哪家强?精选实力制造商与优质供货商名单 - 品牌推荐大师
  • 告别臃肿与失衡:G-Helper的硬件调校与性能优化解决方案
  • D3KeyHelper深度评测:5大实战技巧提升暗黑破坏神3操作效率
  • 利用快马平台与codex模型快速构建vscode智能代码补全插件原型
  • 2026 年成人纸尿裤选购指南及主流品牌测评 - 速递信息