linux打包压缩概念
默认情况下,Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。
打包
1.txt 5MB
2.txt 10MB
3.txt 15MB
1.txt + 2.txt + 3.txt = 打包 = 123.tar = 30MB
打包只是把多个文件或文件夹打包放在一个文件中,但是并没有进行压缩,所以其大小还是原来所有文件的总和。
压缩
1.txt 5MB
2.txt 10MB
3.txt 15MB
1.txt + 2.txt + 3.txt = 压缩 = 123.tar.gz = 20MB(体积变小了)
压缩:也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件所占用的磁盘空间比集合中所有文件大小的总和要小。
Linux打包操作
基本语法:
# tar [选项] 打包后的名称.tar 多个文件或文件夹
选项 | 选项说明 |
---|---|
-c | 打包 |
-f | filename,打包后的文件名称 |
-v | 显示打包的进度 |
-u | update缩写,更新原打包文件中的文件(了解) |
-t | 查看打包的文件内容(了解) |
示例1 使用tar 打包多个文件
案例: 把a.txt、b.txt、c.txt文件打包到abc.tar文件中
\# tar -cvf abc.tar a.txt b.txt c.txt
示例2 使用tar 打包文件夹
案例:把c文件夹进行打包成tarc.tar
\# tar -cvf c.tar c
示例3 tar -tf 查看包中文件信息
主要功能:查看tar包中的文件信息
案例:查看c.tar包中的文件信息
示例4 使用tar -uf 更新包
u = update,更新,如果还想往tar包中更新或追加内容都可以通过-u选项
案例向c.tar包中添加一个hello.txt文件
\# touch hello.txt
\# tar -uf abc.tar hello.txt
查看是否添加成功
\# tar -tf abc.tar
打包拓展
把tar包中的文件释放出来
打包
# tar -cf abc.tar a.txt b.txt c.txt
打包 => 释放(-c 变成 -x)
释放
# tar -xf abc.tar
打包并压缩
基本语法
\# tar [选项] 压缩后的压缩包名称 要压缩的文件或文件夹
选项 | 选项说明 |
---|---|
-cf | 对文件或文件夹进行打包 |
-v | 显示压缩进度 |
-z | 使用gzip压缩工具把打包后的文件压缩为.gz |
-j | 使用bzip2压缩工具把打包后的文件压缩为.bz2 |
-J | 使用xz压缩工具把打包后的文件压缩为.xz |
压缩速度:gzip > bzip2 > xz
压缩率:gzip < bzip2 < xz
100M 90M 80M 70M
示例1 使用tar 打包多个文件
案例:把a.txt、b.txt、c.txt文件打包并压缩为abc.tar.gz
\# tar -zcf abc.tar.gz a.txt b.txt c.txt
案例:把wechat文件夹压缩为wechat.tar.gz格式的压缩包
示例2 使用tar打包文件夹
案例:把c文件夹压缩为c.tar.gz格式的压缩包
# tar -zcf c.tar.gz c
对压缩包进行解压
解压过程非常简单,就是把压缩的参数中的c换成x就可以实现解压缩了
*.tar.gz格式的压缩包
# tar -zxf 名称.tar.gz
*.tar.bz2格式的压缩包
# tar -jxf 名称.tar.bz2
*.tar.xz格式的压缩包
# tar -Jxf 名称.tar.xz
示例1使用tar揭阳gz压缩包
案例:把abc.tar.gz格式的压缩包进行解压缩操作
# tar -zxf abc.tar.gz
zip压缩与解压缩
zip压缩
# zip [选项] 压缩后的文件名称.zip 文件或文件夹
选项说明:
-r :递归压缩,主要针对的是文件夹
Linux下已经有gzip、bzip2以及xz压缩命令了,为什么还需要使用zip压缩呢?
因为zip格式在Windows以及Linux中都是可以正常使用的。
示例1 使用zip对多个文件进行压缩
案例:把a.txt、b.txt、c.txt进行压缩为abc.zip
# zip abc.zip a.txt b.txt c.txt
示例2 使用zip对文件夹进行压缩
案例:把c文件夹压缩为c.zip
# zip -r wechat.zip wechat
unzip解压缩
# unzip 压缩包名称 => 解压到当前目录
# unzip 压缩包名称 -d 指定路径 => 解压到指定路径下
示例1 解压缩
对abc.zip文件进行解压缩
# unzip abc.zip
示例2 把压缩包解压到指定路径
案例 把c.zip解压到/root/shop目录下
# unzip c.zip -d /root/shop
总结:
在Linux操作系统中,其拥有很多压缩工具,如gzip、bzip2、xz等等,但是其有一个缺点:
一次只能压缩一个文件(而且无法压缩文件夹)
① 打包,把一个或多个文件打成tar包,并不是压缩,只是把文件合并在一个tar文件中
1.txt 5MB
2.txt 10MB
3.txt 15MB
打包123.tar = 5MB + 10MB + 15MB = 30MB
为什么要打包,就是为了后期的压缩操作。
② 打包并压缩
# tar -zcf 压缩包名称.tar.gz 文件或文件夹名称
# tar -jcf 压缩包名称.tar.bz2 文件或文件夹名称
# tar -Jcf 压缩包名称.tar.xz 文件或文件夹名称
③ 解压缩
# tar 把c参数更换为x,就可以实现解压缩 压缩包名称.tar.gz
扩展:
# tar -zxf 压缩包名称.tar.gz [参数] 指定路径
第一种解决思路:随用随查,百度、Google
# tar -zxf 压缩包名称.tar.gz -C 指定路径
第二种解决思路:可以使用man命令(manual缩写,手册)
# man tar命令
# tar -zxf 压缩包名称.tar.gz -C 指定路径
④ zip压缩与解压缩
给我们提供一种既可以在Windows中使用的,也可以提供一种在Linux中使用的通用的压缩格式。
# zip [-r] 压缩包名称.zip 要压缩的文件或文件夹
解压缩:
# unzip 压缩包名称.zip -d 指定路径