0%

Linux压缩解压缩命令

Linux基础(4):linux的压缩解压缩

Linux进行压缩解压缩的相关指令,四种格式的文件处理
Linux常见的压缩包格式:tar.gz .tgz .tar.bz2 .zip .rar .tar.xz

tar

压缩

1
2
3
4
5
6
7
8
9
10
#第一种方式
tar czvf all.tar.gz temp2 temp3
c:创建压缩文件
z:使用gzip方式进行文件压缩,采用这种方式压缩,文件格式记录为.tar.gz
v:过程中显示信息(可以不写)
f:指定压缩包的名字

#第二种方式
tar cjvf all.tar.bz2 temp2 temp3
j:使用bzip2方式进行文件压缩,采用这种方式压缩,文件格式记录为.tar.bz2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#具体执行指令

gao@gao-VirtualBox:~/桌面/test$ ls
b d temp temp2 temp3
gao@gao-VirtualBox:~/桌面/test$ tar czvf all.tar.gz temp2 temp3
temp2
temp3
gao@gao-VirtualBox:~/桌面/test$ ls
all.tar.gz b d temp temp2 temp3
gao@gao-VirtualBox:~/桌面/test$ tar cjvf all.tar.bz2 temp2 temp3
temp2
temp3
gao@gao-VirtualBox:~/桌面/test$ ls
all.tar.bz2 all.tar.gz b d temp temp2 temp3

解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#针对两种文件格式,采用相应的解压缩命令
#当文件是.tar.gz或者.tgz时都认为是 tar czvf压缩而来的文件
#相应解压命令的关键

tar xzvf all.tar.gz
x:释放压缩文件内容
z:使用gzip方式进行文件压缩,采用这种方式压缩,文件格式记录为.tar.gz
v:过程中显示信息(可以不写)
f:指定压缩包的名字

tar xjvf all.tar.bz2
j:使用bzip2方式进行文件压缩,采用这种方式压缩,文件格式记录为.tar.bz2

#采用上述的指令,解压文件到当前目录。
#可以采用额外的参数,解压到指定参数

tar xzvf all.tar.gz -C test
1
2
3
4
5
6
7
8
9
10
11
12
13
gao@gao-VirtualBox:~/桌面/test$ ls
all.tar.bz2 all.tar.gz b d temp temp2 temp3
gao@gao-VirtualBox:~/桌面/test$ tar xzvf all.tar.gz -C case1
temp2
temp3
gao@gao-VirtualBox:~/桌面/test$ ls
all.tar.bz2 all.tar.gz b case1 d temp temp2 temp3
gao@gao-VirtualBox:~/桌面/test$ tree case1
case1
├── temp2
└── temp3

0 directories, 2 files

zip

首先需要安装zip的压缩和解压缩工具(以Ubuntu为例)

1
2
$ sudo apt install zip    	# 压缩
$ sudo apt install unzip # 解压缩

压缩

使用 zip 压缩目录需要注意一点,必须要添加参数 -r, 这样才能将子目录中的文件一并压缩,如果要压缩的文件中没有目录,该参数就可以不写了。

另外使用 zip 压缩文件,会自动生成文件后缀.zip, 因此就不需要额外指定了。

1
2
# 语法: 后自动添加压缩包后缀 .zip, 如果要压缩目录, 需要添加参数 r
$ zip [-r] 压缩包名 要压缩的文件

解压

1
2
3
4
5
# 语法1: 解压到当前目录中 
$ unzip 压缩包名

# 语法: 解压到指定目录, 需要添加参数 -d
$ unzip 压缩包名 -d 解压目录

rar

也是需要先安装rar工具

1
gao@gao-VirtualBox:~/桌面$ sudo apt install rar

压缩

语法:rar a 压缩包名 要压缩的文件 [-r]

注:a表示是进行压缩操作,含有文件夹需要-r指令,会自动生成.rar后缀

1
2
3
4
5
6
7
8
gao@gao-VirtualBox:~/桌面/test$ rar a all temp2 temp3 -r

Creating archive all.rar
Adding temp2 OK
Adding temp3 OK
Done
gao@gao-VirtualBox:~/桌面/test$ ls
all.rar all.tar.bz2 all.tar.gz b case1 d temp temp2 temp3

解压

语法:rar x 压缩包名 #解压到当前目录

 rar x  压缩包名  解压目录  #解压到指定目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gao@gao-VirtualBox:~/桌面/test$ ls
all.rar all.tar.bz2 all.tar.gz b case1 d temp temp2 temp3

gao@gao-VirtualBox:~/桌面/test$ rar x all.rar case1
RAR 5.50 Copyright (c) 1993-2017 Alexander Roshal 11 Aug 2017
Trial version Type 'rar -?' for help
Extracting from all.rar
Extracting case1/temp2 OK
Extracting case1/temp3 OK
All OK

gao@gao-VirtualBox:~/桌面/test$ tree case1
case1
├── temp2
└── temp3

0 directories, 2 files

xz

压缩,需要两步,先用tar命令打包,再用xz命令压缩

语法

1
2
tar cvf 文件名.tar 要打包的文件
xz -z 刚才生成的文件名.tar

注:xz之后会自动生成.tar.xz文件后缀

1
2
3
4
5
6
7
8
9
10
11
gao@gao-VirtualBox:~/桌面/test$ tar cvf all.tar temp2 temp3
temp2
temp3

gao@gao-VirtualBox:~/桌面/test$ ls
all.rar all.tar all.tar.bz2 all.tar.gz b case1 d temp temp2 temp3

gao@gao-VirtualBox:~/桌面/test$ xz -z all.tar

gao@gao-VirtualBox:~/桌面/test$ ls
all.rar all.tar.bz2 all.tar.gz all.tar.xz b case1 d temp temp2 temp3

解压,也是两步,先用xz命令解压,再用tar命令拆包

语法

1
2
xz -d 解压压缩包得到xxx.tar文件
tar xvf xxx.tar 拆包这个文件,将文件释放到当前目
1
2
3
4
5
6
gao@gao-VirtualBox:~/桌面/test$ xz -d all.tar.xz
gao@gao-VirtualBox:~/桌面/test$ ls
all.rar all.tar all.tar.bz2 all.tar.gz b case1 d temp temp2 temp3
gao@gao-VirtualBox:~/桌面/test$ tar xvf all.tar
temp2
temp3

感谢丙哥:https://subingwen.cn/linux/commpress/