Linux tar压缩与解压

tar命令是系统自带的压缩与解压工具。

tar命令可将文件与文件夹压缩为.tar压缩文件,以及解压。


1 语法

tar [选项] 文件

2 常用选项

选项 作用
-c create,创建tar压缩文件
-x extract,解压文件
-f file,指定压缩文件名称
-v verbose,显示运行详情
-C 指定当前目录

3 压缩示例

准备数据:

创建文件夹/xt1/sub2/sub3/sub4

sub3中创建文件file1.txt,file2.txt,file3.txt

mkdir -p /xt1/sub2/sub3/sub4
cd /xt1/sub2/sub3
touch file1.txt file2.txt file3.txt
ls /xt1/sub2/sub3

img


例1:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中

准备文件夹/xt1_bak

mkdir /xt1_bak

压缩

tar -cvf /xt1_bak/xt1.tar /xt1/sub2/sub3

img

下载xt1.tar用解压软件打开

img

压缩文件中带子原目录的层级结构 xt1/sub2/sub3。通常我们只需要sub3,或者一级都不要。


两种解决方法:

1)cd 命令切换当前目录到要相应目录

2)-C选项指定压缩的当前目录

第1种方法更麻烦,但更灵活,推荐使用。


例2:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中无xt1到sub3的各级文件夹。

解压

cd /xt1/sub2/sub3
tar -cvf /xt1_bak/xt1.tar *

img

查看解压文件

img

压缩包中直接存放file1.txt等文件。


例3:将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中只保留最后一级文件夹。

cd /xt1/sub2
tar -cvf /xt1_bak/xt1.tar sub3

img

查看压缩文件

img


例4:通过-C将文件夹/xt1/sub2/sub3 压缩到 /xt1_bak/xt1.tar中,压缩文件中只保留最后一级文件夹。

切回用户主目录

cd

压缩

tar -cvf /xt1_bak/xt1.tar -C /xt1/sub2 sub3

注意事项:sub2与sub3有空格。即-C指定压缩的当前路径是/xt1/sub2,压缩文件夹是sub3。

img


4 解压示例

例1:将/xt1_bak/xt1.tar中的内容解压到/xt2中。

mkdir /xt2

解压

tar -xvf /xt1_bak/xt1.tar -C /xt2

img