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

Written by

in

文章目录
  • 存档文件是包含多个文件的单个常规文件或设备文件,可用于创建可管理的个人备份,或者在其他方法(如 rsync)不可用时简化通过网络传输文件的任务。在 Linux 系统中,tar 实用程序是用于创建、管理和提取存档的常用命令。 存档文件可以使用或不使用压缩: 不使用压缩:仅将多个文件打包成一个文件,大小基本不变 使用压缩:通过压缩算法减小存档文件体积
  • 使用 tar 命令的 t 选项可列出通过 f 选项指定的存档中的文件名: tar -tf /root/etc.tar 文件是使用相对名称语法列出的,因为在存档创建期间删除了前导的正斜杠。
  • tar 命令可以自动确定使用的压缩方式,因此不需要指定压缩选项: tar -xf /root/etcbackup.tar.gz 注意:如果包含了不正确的压缩类型,tar 将报告指定的压缩类型与文件的类型不匹配。
  • gzip、bzip2 和 xz 算法也作为独立命令实施,用于在不创建归档的前提下压缩单个文件。但这些命令不允许在创建的单个压缩文件中包含多个文件。
  • 操作类型 命令示例 说明 仅归档 tar -cvf glab.tar ./* 创建不压缩的归档文件 查看归档 tar -tf glab.tar 查看归档内容(必须加f) 提取归档 tar -xf glab.tar 提取归档文件 gzip压缩归档 tar -zcvf rhce.tar.gz * 使用gzip压缩并创建归档 bzip2压缩归档 tar -jcvf file.tar.bz2 * 使用bzip2压缩并创建归档 xz压缩归档 tar -Jcvf file.tar.xz * 使用xz压缩并创建归档 解压gzip归档 tar -zxf file.tar.gz 解压gzip压缩的归档 解压bzip2归档 tar -jxf file.tar.bz2 解压bzip2压缩的归档 解压xz归档 tar -Jxf file.tar.xz 解压xz压缩的归档
  • 压缩效果:任何压缩算法的效用都取决于被压缩数据的类型。之前已压缩的数据文件(如图片格式或 RPM 文件)通常不会进一步大幅压缩。 文件覆盖:如果目标目录中存在与所请求存档同名的文件,则 tar 命令会覆盖这个文件。 权限保留:对于超级用户,–preserve-permissions 选项默认为启用。 传统语法:tar 命令依旧支持不使用短划线 (-) 字符的传统选项样式,但为保持命令一致性,建议改用短选项或长选项样式。 到此这篇关于Linux 下 tar 命令归档与压缩完整指南的文章就介绍到这了,更多相关linux tar 归档与压缩命令内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Linux使用tar命令创建归档和压缩文件的操作流程 linux下用tar命令将当前目录下文件按子目录压缩归档的实现 linux压缩解压文件夹命令zip unzip和tar详解 Linux压缩及解压缩命令tar|zip|rar|xz操作方法 Linux压缩和解压命令大全之tar、gzip和zip详细教程 Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2 详谈Linux打包与压缩及tar命令 Linux下的tar压缩解压缩命令详解(小结) Linux tar 压缩打包命令使用方法
  • 目录
    • 什么是存档文件?
    • tar 命令基础操作
      • 必需的操作选项
      • 常用选项
    • 创建存档文件
      • 基本创建命令
      • 权限要求
    • 查看存档内容
      • 提取存档内容
        • 基本提取命令
        • 权限处理
      • 压缩存档
        • 支持的压缩算法
        • 创建压缩存档示例
        • 验证压缩存档内容
      • 提取压缩存档
        • 独立压缩工具
          • 查看压缩文件信息
        • 常用命令总结
          • 注意事项

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

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

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

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

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

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

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

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

            重要特性

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

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

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

            tar -tf /root/etc.tar

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

            tar -xf /root/etc.tar

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

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

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

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

            # 使用 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 选项来验证其内容。列出压缩存档文件时,不需要指定压缩选项,因为压缩类型是从存档标头中读取的:

            tar -tf /root/etcbackup.tar.gz

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

            tar -xf /root/etcbackup.tar.gz

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

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

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

            gzip -l file.tar.gz
            xz -l file.xz

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

            操作类型 命令示例 说明
            仅归档 tar -cvf glab.tar ./* 创建不压缩的归档文件
            查看归档 tar -tf glab.tar 查看归档内容(必须加f)
            提取归档 tar -xf glab.tar 提取归档文件
            gzip压缩归档 tar -zcvf rhce.tar.gz * 使用gzip压缩并创建归档
            bzip2压缩归档 tar -jcvf file.tar.bz2 * 使用bzip2压缩并创建归档
            xz压缩归档 tar -Jcvf file.tar.xz * 使用xz压缩并创建归档
            解压gzip归档 tar -zxf file.tar.gz 解压gzip压缩的归档
            解压bzip2归档 tar -jxf file.tar.bz2 解压bzip2压缩的归档
            解压xz归档 tar -Jxf file.tar.xz 解压xz压缩的归档

            • 压缩效果:任何压缩算法的效用都取决于被压缩数据的类型。之前已压缩的数据文件(如图片格式或 RPM 文件)通常不会进一步大幅压缩。
            • 文件覆盖:如果目标目录中存在与所请求存档同名的文件,则 tar 命令会覆盖这个文件。
            • 权限保留:对于超级用户,--preserve-permissions 选项默认为启用。
            • 传统语法tar 命令依旧支持不使用短划线 (-) 字符的传统选项样式,但为保持命令一致性,建议改用短选项或长选项样式。

            到此这篇关于Linux 下 tar 命令归档与压缩完整指南的文章就介绍到这了,更多相关linux tar 归档与压缩命令内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

            您可能感兴趣的文章:

            • Linux使用tar命令创建归档和压缩文件的操作流程
            • linux下用tar命令将当前目录下文件按子目录压缩归档的实现
            • linux压缩解压文件夹命令zip unzip和tar详解
            • Linux压缩及解压缩命令tar|zip|rar|xz操作方法
            • Linux压缩和解压命令大全之tar、gzip和zip详细教程
            • Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2
            • 详谈Linux打包与压缩及tar命令
            • Linux下的tar压缩解压缩命令详解(小结)
            • Linux tar 压缩打包命令使用方法

            站内搜索