[命令] Linux 命令 tar (打包、解包、压缩和解压文件或目录)

内容一:压缩并创建 (压缩) 包 (以压缩内容的维度进行分类)

1.1 压缩并创建 (压缩) 包 (文件)

1.1.1 压缩并创建 (压缩) 包 (某 1 个文件)
# tar zcvf file.tar file.txt

(补充:这里以压缩后创建 file.tar (压缩) 包,而 file.txt 是被压缩的目录为例)

1.1.2 压缩并创建 (压缩) 包 (某几个文件)
# tar zcvf tmp.tar file1.txt file2.txt file3.txt

(补充:这里以压缩后创建 file.tar (压缩) 包,而 file1.txt file2.txt 和 file3.txt 是被压缩的目录为例)

1.2 压缩并创建 (压缩) 包 (目录)

1.2.1 压缩并创建 (压缩) 包 (某 1 个目录)
# tar zcvf tmp.tar /tmp

(补充:这里以压缩后创建 tmp.tar (压缩) 包,而 /tmp 是被压缩的目录为例)

1.2.2 压缩并创建 (压缩) 包 (某几个目录)
# tar zcvf tmp.tar /tmp /var/tmp

(补充:这里以压缩后创建 tmp.tar (压缩) 包,而 /tmp 和 /var/tmp 是被压缩的目录为例)

内容二:压缩并创建 (压缩) 包 (以压缩格式的维度进行分类)

2.1 以 gzip 格式压缩并创建 (压缩) 包

# tar zcvf tmp.tar.gz /tmp

(补充:这里的 tmp.tar.gz 是创建的压缩包,而 /tmp 是被压缩的目录)

2.2 以 bzip2 格式压缩并创建 (压缩) 包

# tar jcvf test.tar.bz2 /tmp

(补充:这里的 tmp.tar.bz2 是创建的压缩包,而 /tmp 是被压缩的目录)

(注意:压缩后 bz2 后缀的文件比 gz 后缀的文件更小,但是花费的时间更长)

2.3 以 xz 格式压缩并创建 (压缩) 包

# tar Jcvf test.tar.xz /tmp

(补充:这里的 tmp.tar.xz 是创建的包,而 /tmp 是被压缩的目录)

(注意:压缩后 xz 后缀的文件比 bz2 后缀的文件更小,但是花费的时间更长)

内容三:解压 (压缩) 包

3.1 将 (压缩) 包解压到当前目录

# tar zxvf tmp.tar

或者:

# tar zxvf tmp.tar.gz

或者:

# tar jxvf tmp.tar.bz2

或者:

# tar Jxvf tmp.tar.xz

(补充:这里的 tmp.tar、tmp.tar.gz、tmp.tar.bz2、tmp.tar.xz 是要被解压的 (压缩) 包,它们分别是 gzip 格式的 (压缩) 包、gzip 格式的 (压缩) 包、bzip2 格式的 (压缩) 包、xz 格式的 (压缩) 包)

3.2 将 (压缩) 包解压到指定目录

# tar zxvf tmp.tar -C /tmp

或者:

# tar zxvf tmp.tar.gz -C /tmp

或者:

# tar jxvf tmp.tar.bz2 -C /tmp

或者:

# tar Jxvf tmp.tar.xz -C /tmp


补充:
1) 这里的 tmp.tar、tmp.tar.gz、tmp.tar.bz2、tmp.tar.xz 是要被解压的 (压缩) 包,它们分别是 gzip 格式的(压缩)包、gzip 格式的 (压缩) 包、bzip2 格式的 (压缩) 包、xz 格式的 (压缩) 包
2) 这里的 /tmp 是 (压缩) 包里的内容要被解压到目录

内容四:tar 命令的常用选项

1) –remove-files 压缩完成后删除原来的文件
2) –exclude= 排除某些文件不压缩