小小白祈祷中...

tar 是 Linux/Unix 系统中用于创建、解压缩归档文件的工具。它常用于备份文件、打包文件夹以及解压归档文件。tar 支持多种压缩格式(如 .gz.bz2.xz),并且可以直接操作这些压缩文件。


基本语法

1
tar [选项] [参数] [文件/目录]
  • 选项:指定操作类型(如打包、解压缩等)和附加功能(如显示详细信息)。
  • 参数:指定目标文件或目录。
  • 文件/目录:操作的目标文件或目录。

常用选项

选项 含义
-c 创建归档文件(create)。
-x 解压归档文件(extract)。
-f 指定归档文件的名称(file)。
-v 显示操作过程的详细信息(verbose)。
-z 使用 gzip 压缩或解压(与 .tar.gz.tgz 文件类型配合使用)。
-j 使用 bzip2 压缩或解压(与 .tar.bz2 文件类型配合使用)。
-J 使用 xz 压缩或解压(与 .tar.xz 文件类型配合使用)。
-t 列出归档文件的内容(list)。
-r 向现有的归档文件中追加内容(append)。
-u 仅追加比归档文件中已有版本更新的文件(update)。
--exclude 排除指定的文件或目录。
-C 指定解压后文件存放的目录(change directory)。

常用操作

创建归档文件

1) 打包目录或文件(不压缩)

1
tar -cvf archive.tar 文件1 文件2 目录/
  • 示例
1
tar -cvf backup.tar /home/user
  • 作用:将 /home/user 目录打包为 backup.tar 文件。
  • 选项
    • -c:创建归档文件。
    • -v:显示打包过程。
    • -f:指定归档文件名称。

2) 打包并使用 gzip 压缩

1
tar -zcvf archive.tar.gz 文件1 文件2 目录/
  • 示例
1
tar -zcvf backup.tar.gz /home/user
  • 作用:将 /home/user 目录打包为 backup.tar.gz 文件(gzip 压缩)。

3) 打包并使用 bzip2 压缩

1
tar -jcvf archive.tar.bz2 文件1 文件2 目录/
  • 示例
1
tar -jcvf backup.tar.bz2 /home/user
  • 作用:将 /home/user 目录打包为 backup.tar.bz2 文件(bzip2 压缩)。

4) 打包并使用 xz 压缩

1
tar -Jcvf archive.tar.xz 文件1 文件2 目录/
  • 示例
1
tar -Jcvf backup.tar.xz /home/user
  • 作用:将 /home/user 目录打包为 backup.tar.xz 文件(xz 压缩)。

解压归档文件

1) 解压 .tar 文件(无压缩)

1
tar -xvf archive.tar
  • 示例
1
tar -xvf backup.tar
  • 作用:解压 backup.tar 文件到当前目录。

2) 解压 .tar.gz 文件(gzip 压缩)

1
tar -zxvf archive.tar.gz
  • 示例
1
tar -zxvf backup.tar.gz
  • 作用:解压 backup.tar.gz 文件到当前目录。

3) 解压 .tar.bz2 文件(bzip2 压缩)

1
tar -jxvf archive.tar.bz2
  • 示例
1
tar -jxvf backup.tar.bz2
  • 作用:解压 backup.tar.bz2 文件到当前目录。

4) 解压 .tar.xz 文件(xz 压缩)

1
tar -Jxvf archive.tar.xz
  • 示例
1
tar -Jxvf backup.tar.xz
  • 作用:解压 backup.tar.xz 文件到当前目录。

5) 解压到指定目录

1
tar -xvf archive.tar -C /目标/目录
  • 示例
1
tar -zxvf backup.tar.gz -C /home/user/extracted
  • 作用:解压 backup.tar.gz 文件到 /home/user/extracted 目录。

列出归档文件内容

1
tar -tvf archive.tar
  • 示例
1
tar -tvf backup.tar
  • 作用:列出 backup.tar 文件中的内容。

向现有归档文件中追加文件

1
tar -rvf archive.tar 新文件
  • 示例
1
tar -rvf backup.tar newfile.txt
  • 作用:将 newfile.txt 追加到 backup.tar 文件中。

排除文件或目录

1
tar --exclude=文件或目录 -zcvf archive.tar.gz 目录/
  • 示例
1
tar --exclude=/home/user/temp -zcvf backup.tar.gz /home/user
  • 作用:打包 /home/user 目录时,排除其中的 temp 子目录。

检查归档文件完整性

1
tar -tvf archive.tar
  • 作用:列出归档文件内容,检查文件是否被正确打包。

解压部分文件

1
tar -xvf archive.tar 文件1 文件2
  • 示例
1
tar -xvf backup.tar file1.txt file2.txt
  • 作用:从 backup.tar 中仅解压 file1.txtfile2.txt

压缩目录为 .tar.gz 的快捷方式

1
tar -czvf archive.tar.gz 目录/
  • 示例
1
tar -czvf mybackup.tar.gz /var/log
  • 作用:将 /var/log 目录压缩为 mybackup.tar.gz

常用示例总结

操作 命令
打包目录为 .tar 文件 tar -cvf archive.tar 目录/
打包并 gzip 压缩为 .tar.gz tar -zcvf archive.tar.gz 目录/
打包并 bzip2 压缩为 .tar.bz2 tar -jcvf archive.tar.bz2 目录/
打包并 xz 压缩为 .tar.xz tar -Jcvf archive.tar.xz 目录/
解压 .tar 文件 tar -xvf archive.tar
解压 .tar.gz 文件 tar -zxvf archive.tar.gz
解压 .tar.bz2 文件 tar -jxvf archive.tar.bz2
解压 .tar.xz 文件 tar -Jxvf archive.tar.xz
解压到指定目录 tar -xvf archive.tar.gz -C /目标/目录
列出归档文件内容 tar -tvf archive.tar
向归档文件追加文件 tar -rvf archive.tar 新文件
排除某些文件或目录 tar --exclude=文件 -zcvf archive.tar.gz 目录/

常见问题

如何快速压缩和解压缩目录?

  • 压缩目录
1
tar -zcvf archive.tar.gz 目录/
  • 解压目录
1
tar -zxvf archive.tar.gz

如何排除某些文件或目录?

  • 使用 --exclude 选项:
1
tar --exclude=/path/to/exclude -zcvf archive.tar.gz 目录/

如何解压到指定目录?

  • 使用 -C 选项:
1
tar -zxvf archive.tar.gz -C /目标/目录

通过熟练使用 tar 命令,可以高效地进行文件和目录的打包和压缩操作,是 Linux 系统中备份和传输文件的重要工具!