【Linux】tar压缩工具常用参数详解

发布于:2025-02-15 ⋅ 阅读:(110) ⋅ 点赞:(0)

tar 命令是 Unix/Linux 系统中用于文件打包和压缩的核心工具。它的名字来源于“tape archive”,最初设计用于磁带备份,但现在广泛用于文件归档。tar命令可以将多个文件或目录打包成一个单独的文件,通常称为tar包。之后,还可以使用压缩工具如gzip或bzip2进行压缩,生成.tar.gz或.tar.bz2等格式的压缩包。
以下是常用选项的详细介绍及示例:


基本选项

  1. -c(创建归档)
    用于创建新的归档文件。

    tar -cvf archive.tar file1 file2  # 打包 file1 和 file2 到 archive.tar
    
  2. -x(提取归档)
    用于解包归档文件中的内容。

    tar -xvf archive.tar           # 解压 archive.tar 到当前目录
    
  3. -v(详细模式)
    显示处理过程中的文件列表,便于跟踪进度。

    tar -cvf archive.tar dir/      # 打包时显示正在添加的文件
    
  4. -f(指定文件名)
    指定归档文件的名称(必须紧跟文件名)。

    tar -cvf archive.tar dir/      # 指定归档文件名为 archive.tar
    
  5. -t(列出内容)
    查看归档文件中的内容列表,但不解压。

    tar -tvf archive.tar           # 显示归档内的文件详细信息
    
  6. -C(切换目录)
    在执行操作前切换到指定目录,控制文件路径。

    tar -xvf archive.tar -C /target  # 解压到 /target 目录
    tar -cvf archive.tar -C /path/to/dir .  # 打包 /path/to/dir 下的内容(不包含父目录)
    

压缩选项

  1. -z(gzip 压缩)
    使用 gzip 压缩/解压,生成 .tar.gz.tgz 文件。

    tar -czvf archive.tar.gz dir/   # 创建并压缩为 .tar.gz
    tar -xzvf archive.tar.gz        # 解压 .tar.gz 文件
    
  2. -j(bzip2 压缩)
    使用 bzip2 压缩/解压,生成 .tar.bz2.tbz 文件。

    tar -cjvf archive.tar.bz2 dir/  # 创建并压缩为 .tar.bz2
    tar -xjvf archive.tar.bz2       # 解压 .tar.bz2 文件
    

组合使用示例

  • 创建压缩归档

    tar -czvf backup.tar.gz /path/to/data  # 打包并压缩为 .tar.gz
    tar -cjvf backup.tar.bz2 /path/to/data # 打包并压缩为 .tar.bz2
    
  • 解压到指定目录

    tar -xzvf backup.tar.gz -C /restore/path  # 解压 .tar.gz 到 /restore/path
    
  • 查看归档内容

    tar -tzvf backup.tar.gz          # 列出 .tar.gz 内的文件
    

注意事项

  1. 选项顺序

    • -f 必须紧跟文件名(如 tar -cvzf archive.tar.gz 正确,而 tar -czfv 错误)。
    • 组合选项时通常合并书写(如 -cvzf)。
  2. 压缩格式

    • 使用 -z-j 时,确保系统已安装对应工具(如 gzipbzip2)。
    • 较新的 tar 可能支持自动检测压缩类型,但显式指定更可靠。
  3. 路径安全

    • 避免打包绝对路径,防止解压时覆盖系统文件。建议结合 -C 控制路径。

扩展知识

  • 其他压缩格式

    • -J:使用 xz 压缩(生成 .tar.xz)。
    • --auto-compress:根据扩展名自动选择压缩方式(需支持)。
  • 排除文件

    tar -czvf archive.tar.gz --exclude="*.tmp" dir/  # 排除 .tmp 文件
    

网站公告

今日签到

点亮在社区的每一天
去签到