张芷铭的个人博客

tar

tar 是 Linux 和类 Unix 系统中用于文件打包、压缩和解压的强大工具。下面为你详细介绍它的用法。

🖥️ 基本语法

tar 命令的基本格式如下:

1
tar [选项] [归档文件] [文件或目录列表]

🧩 主要选项和功能

tar 的选项繁多,但其核心功能围绕创建查看提取管理归档文件。

选项功能描述示例
-c创建新的归档文件tar -cvf archive.tar file1.txt dir1/
-x从归档中提取文件tar -xvf archive.tar
-t列出归档中的文件列表tar -tvf archive.tar
-r向已有归档追加文件tar -rvf archive.tar new_file.txt
-u仅追加比归档内更新的文件tar -uvf archive.tar updated_file.txt
-f指定归档文件名(通常必须)tar -cvf my_backup.tar /my/data/
-v显示详细处理过程(verbose)tar -xzvf backup.tar.gz
-z通过 gzip 过滤归档(处理 .tar.gz)tar -czvf log_backup.tar.gz /var/log/
-j通过 bzip2 过滤归档(处理 .tar.bz2)tar -cjvf photos.tar.bz2 /home/user/Pictures/
-J通过 xz 过滤归档(处理 .tar.xz)tar -cJvf archive.tar.xz large_file.iso
-C解压时切换到指定目录tar -xzvf source_code.tar.gz -C /build/
--exclude打包时排除匹配模式的文件tar -czvf project.tar.gz --exclude='*.tmp' src/
-p保留文件的原始权限和属性tar -cpvf etc_backup.tar /etc/

📦 常见用法示例

1. 创建归档文件

  • 仅打包不压缩
    1
    
    tar -cvf archive_name.tar /path/to/file_or_directory
    
  • 打包并用 gzip 压缩(生成 .tar.gz.tgz):
    1
    
    tar -czvf archive_name.tar.gz /path/to/file_or_directory
    
  • 打包并用 bzip2 压缩(生成 .tar.bz2):
    1
    
    tar -cjvf archive_name.tar.bz2 /path/to/file_or_directory
    
  • 打包并用 xz 压缩(生成 .tar.xz):
    1
    
    tar -cJvf archive_name.tar.xz /path/to/file_or_directory
    

2. 提取归档文件

  • 解压 .tar 文件
    1
    
    tar -xvf archive_name.tar
    
  • 解压 .tar.gz 文件
    1
    
    tar -xzvf archive_name.tar.gz
    
  • 解压 .tar.bz2 文件
    1
    
    tar -xjvf archive_name.tar.bz2
    
  • 解压到指定目录
    1
    
    tar -xzvf archive_name.tar.gz -C /path/to/target_directory
    

3. 查看归档内容

  • 列出归档内的文件(不解压):
    1
    
    tar -tvf archive_name.tar
    
    1
    
    tar -tzvf archive_name.tar.gz  # 查看.gz归档
    

4. 其他实用操作

  • 从归档中提取单个文件
    1
    
    tar -xvf archive_name.tar path/to/specific_file
    
  • 打包时排除特定文件或目录
    1
    
    tar -czvf backup.tar.gz --exclude='*.log' --exclude='tmp/' /path/to/directory
    
  • 仅打包目录内容(不包含目录本身)
    1
    
    tar -czvf contents.tar.gz -C /path/to/directory .
    

💡 高级技巧与注意事项

  • -f 选项必须后接文件名:并且它通常是参数序列中的最后一个选项。
  • 理解绝对路径与相对路径:使用绝对路径(如 /home/user/data)打包时,解压后也会创建同样的绝对路径结构。为避免潜在风险,通常建议先 cd 到目标目录的父目录,再用相对路径打包。
  • 保留权限:备份系统重要文件(如 /etc)时,建议加上 -p 选项以保留文件原有的权限和属性。
  • 压缩格式选择:不同的压缩格式在压缩率和速度上各有权衡,可根据需要选择:
    压缩格式后缀对应参数特点适用场景
    gzip.tar.gz, .tgz-z压缩速度较快,压缩率中等日常使用,平衡速度与压缩率
    bzip2.tar.bz2-j压缩率较高,速度较慢对压缩率要求较高时
    xz.tar.xz-J压缩率最高,速度最慢需要极致压缩,不介意时间
    无压缩.tar速度最快,仅打包快速归档或后续处理

希望这些信息能帮助你更好地使用 tar 命令。

💬 评论