linux下文档的压缩和打包

首先要弄清两个概念:打包和压缩。

打包是指将一大堆文件或目录变成一个总的文件;

压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。


1. gzip工具
语法: gzip [-d#] filename 其中#为1-9的数字,默认压缩级别为6 
只能压缩文件

-f    强制覆盖压缩文件

-1    快速压缩文件

-9    最佳压缩文件

-v    可视化压缩
gzip  filename 生成filename.gz 源文件消失
解压 gzip -d filename.gz 解压后,压缩文件也会消失

zcat  用来查看gzip压缩的包

最佳压缩和解压缩

[[email protected] tmp]# gzip -9 a.img 
[[email protected] tmp]# ls -lk
-rw-------. 1 root  root 16507 Mar 26 13:00 a.img.gz
[[email protected] tmp]# gzip -d a.img.gz 
[[email protected] tmp]# ls -lk
-rw-------. 1 root  root 16568 Mar 26 13:00 a.img

可以同时压缩多个文件 gzip file1 file2 file3

[[email protected] tmp]# gzip a.img dhcp-4.3.1.tar 
[[email protected] tmp]# ls -l
-rw-------. 1 root root 16902566 Mar 26 13:00 a.img.gz
-rwxr-xr-x. 1 root root  8987298 Mar 26 12:58 dhcp-4.3.1.tar.gz

可视化压缩

[[email protected] tmp]# gzip -v dhcp-4.3.1.tar 
dhcp-4.3.1.tar: 33.5% -- replaced with dhcp-4.3.1.tar.gz


2. bzip2压缩工具
语法: bzip2 [-dz] filename 
压缩时,可以加 “-z” 也可以不加,都可以压缩文件

bzip2 filename  生成filename.bz2 源文件消失
不支持压缩目录

-d    强制解压缩文件

-z    强制压缩文件,默认可以不用加

-k    压缩时保留原文件

-f    解压缩时强制覆盖原文件

-v    可视化压缩,显示节省空间百分比,压缩前后大小;

bzip2 -d  filename.bz2 解压后压缩文件消失
可以使用 bzcat 查看bz2的压缩后的文件内容


可以同时压缩多个文件bzip2 file1 file2

[[email protected] tmp]# bzip2 a.img 
[[email protected] tmp]# ls -l
-rw-------. 1 root root 17025434 Mar 26 13:00 a.img.bz2
[[email protected] tmp]# bzip2 -v dhcp-4.3.1.tar 
  dhcp-4.3.1.tar:  1.538:1,  5.200 bits/byte, 35.00% saved, 13506560 in, 8779359 out.

压缩时保留源文件,解压缩时强制覆盖源文件

[[email protected] tmp]# bzip2 -k a.img 
[[email protected] tmp]# ls -lh
-rw-------. 1 root root  17M Mar 26 13:00 a.img
-rw-------. 1 root root  17M Mar 26 13:00 a.img.bz2
[[email protected] tmp]# bzip2 -dfv a.img.bz2 
  a.img.bz2: done
[[email protected] tmp]# ls -lh
drwxr-xr-x. 2 root root 4.0K Mar 27 13:38 abc
-rw-------. 1 root root  17M Mar 26 13:00 a.img


3. xz
用法同gzip和bzip2
xz  filename    生成filename.xz
不支持压缩目录

-v    可视化压缩,显示压缩所用进度时间;

xz -d filename.xz  进行解压缩

xcat    用来查看xz压缩的包的内容

可以同时压缩多个目录,解压缩多个目录,并可视化显示;

[[email protected] tmp]# xz a.img dhcp-4.3.1.tar 
[[email protected] tmp]# ls -lh
-rw-------. 1 root root  17M Mar 26 13:00 a.img.xz
-rwxr-xr-x. 1 root root 8.0M Mar 26 12:58 dhcp-4.3.1.tar.xz
[[email protected] tmp]# xz -dv a.img.xz dhcp-4.3.1.tar.xz 
a.img.xz (1/2)
  100.0 %                 16.1 MiB / 16.2 MiB = 0.997                         
dhcp-4.3.1.tar.xz (2/2)
  100.0 %              8,146.0 KiB / 12.9 MiB = 0.618

4. zip及unzip
zip是压缩工具,unzip是解压缩工具,需要安装才可以使用。

安装zip的命令: yum install -y zip

安装unzip的命令: yum install -y unzip

-v    可视化显示压缩过程,显示压缩前后文件大小和压缩百分比;

-d    解压缩时用,指定解压缩到哪个目录下;

不可以同时解压缩多个文件,解压缩不支持-v可视化;


压缩文件: zip  filename.zip  filename
压缩目录: zip -r  dir.zip dir/ 
解压缩zip压缩包: unzip  filename.zip

压缩abc目录为ab.zip,解压缩ab.zip并指定压缩到ab目录下,abc整个目录解压缩到ab目录下;

[[email protected] tmp]# zip -r ab.zip abc/
  adding: abc/ (stored 0%)
  adding: abc/passwd (deflated 58%)
[[email protected] tmp]# unzip ab.zip -d ab
Archive:  ab.zip
   creating: ab/abc/
  inflating: ab/abc/passwd           
  inflating: ab/abc/a.img            
[[email protected] tmp]# ls -lh
drwxr-xr-x. 3 root root 4.0K Mar 27 15:30 ab
drwxr-xr-x. 2 root root 4.0K Mar 27 15:27 abc
-rw-r--r--. 1 root root  17M Mar 27 15:25 ab.zip
[[email protected] tmp]# ls -l ab/
drwxr-xr-x. 2 root root 4096 Mar 27 15:24 abc
[[email protected] tmp]# ls -l ab/abc/
-rw-------. 1 root root 16965117 Mar 27 15:24 a.img
-rw-r--r--. 1 root root     1019 Mar 27 13:23 passwd

可以使用file name.gz    name.zip    查询是哪一种压缩格式压缩的文件;

5. tar打包工具

可以打包目录也可以打包文件
语法:tar [-zjxcvfpP] filename 
打包: tar -cvf  test.tar  test 其中test是文件或目录

-c    表示建立包

-v    可视化打包的过程

-f    压缩时跟 “-f 文件名”,意思是压缩后的文件名为filename, 解压时跟 “-f 文件名”,意思是解压filename. 请注意,如果是多个参数组合的情况下带有 “-f”,请把 “-f” 写到最后面。 
-z    打包的同时使用gzip压缩

-j    打包的同时使用bzip2压缩

-J    打包的同时使用xz压缩

-C    指定解压后的目录

tar -C /tmp/ -xvf 1.tar    解压到指定目录/tmp里面

查看包内容: tar -tf  test.tar
-t    查看tar包里面的文件 

同样使用 tar -tf 查看压缩的包: tar -tf 1.tar.gz 或者tar -tf 1.tar.bz2

解包: tar -xvf  test.tar 
-x    解包或者解压缩 
不管是打包还是解包,原来的文件是不会删除的,但它会覆盖当前已经存在的文件或者目录。

打包abc目录为abc.tar,查看abc.tar的内容,解压abc.tar包;

[[email protected] tmp]# ls -l
drwxr-xr-x. 2 root root     4096 Mar 27 15:27 abc
-rw-------. 1 root root 16965117 Mar 26 13:00 a.img
-rwxr-xr-x. 1 root root 13506560 Mar 26 12:58 dhcp-4.3.1.tar
[[email protected] tmp]# tar -cvf abc.tar abc
abc/
abc/passwd
abc/a.img
[[email protected] tmp]# tar -tf abc.tar 
abc/
abc/passwd
abc/a.img
[[email protected] tmp]# tar -xvf abc.tar 
abc/
abc/passwd
abc/a.img

同时打包多个文件到11.tar

[[email protected] tmp]# tar -cvf 11.tar abc a.img dhcp-4.3.1.tar abc.tar 
abc/
abc/passwd
abc/a.img
a.img
dhcp-4.3.1.tar
abc.tar
[[email protected] tmp]# ls -lh
-rw-r--r--. 1 root root  62M Mar 27 16:33 11.tar

打包的同时使用gzip压缩: tar -czvf  1.tar.gz 1 其中1可以是文件也可以是目录

-z 表示打包同时使用gzip压缩
解压.tar.gz的压缩包: tar -xzvf 1.tar.gz
使用bzip2压缩: tar -cjvf 1.tar.bz2 1
-j 表示打包同时使用bzip2压缩
解压.tar.bz2: tar -xjvf 1.tar.bz2

使用gzip压缩并打包,使用bzip2压缩并打包,对比2种压缩格式,bzip2压缩后的文件更小;使用xz压缩,压缩效果最佳!压缩后文件最小!

源文件为13M,gzip压缩后为8.6M,bzip2压缩后为8.4M,xz压缩后为8.0M;

[[email protected] tmp]# ls -lh
-rwxr-xr-x. 1 root root  13M Mar 26 12:58 dhcp-4.3.1.tar
[[email protected] tmp]# tar -czvf gzip.tar.gz dhcp-4.3.1.tar dhcp-4.3.1.tar
[[email protected] tmp]# tar -cjvf bzip2.tar.bz2 dhcp-4.3.1.tar dhcp-4.3.1.tar
[[email protected] tmp]# ls -lh
-rw-r--r--. 1 root root 8.4M Mar 27 16:54 bzip2.tar.bz2
-rwxr-xr-x. 1 root root  13M Mar 26 12:58 dhcp-4.3.1.tar
-rw-r--r--. 1 root root 8.6M Mar 27 16:54 gzip.tar.gz
[[email protected] tmp]# xz dhcp-4.3.1.tar 
[[email protected] tmp]# ls -lh
-rw-r--r--. 1 root root 8.4M Mar 27 16:54 bzip2.tar.bz2
-rwxr-xr-x. 1 root root 8.0M Mar 26 12:58 dhcp-4.3.1.tar.xz
-rw-r--r--. 1 root root 8.6M Mar 27 16:54 gzip.tar.gz

有时我们会看到一种后缀名为 .tar.xz的文件,这种压缩包是用xz工具压缩,

打包压缩成 xz格式压缩包:tar -cJvf dir.tar.xz  dir/

解压的方法为:tar -Jxvf  file.tar.xz

可以在打包的时候,排除某些文件或者目录添加参数    --exclude
tar --exclude 1.txt  -czvf 1.tar.gz  dir/

排除多个文件或者目录: tar --exclude "目录名" --exclude "*文件名"  -czvf 1.tar.gz  dir/

打包root目录到1.tar.gz 并排除目录里面的install开头的文件;

[[email protected] ~]# tar -czvf 1.tar.gz --exclude "install*" /root/
时间: 2025-01-14 15:17:17

linux下文档的压缩和打包的相关文章

15、Linux文档的压缩与打包

Linux文档的压缩与打包 概述 compress和uncompress gzip压缩工具 bzip2压缩工具 zip压缩工具 tar压缩工具 cpio压缩工具(主要用来备份还原) Linux文档的压缩与打包 概述 本章将介绍Linux系统中的压缩和解压缩的工具,以及归档工具(tar,cpio) compress/uncompress:    //对应 .Z 结尾的压缩格式文件:gzip/gunzip:            //其对应的是 .gz 结尾的压缩格式文件:bzip2/bunzip2

Linux中文档的压缩和打包

归档解压缩{ tar{ tar zxvpf gz.tar.gz -C 放到指定目录 包中的目录 # 解包tar.gz 不指定目录则全解压 tar zcvpf /$path/gz.tar.gz * # 打包gz 注意*最好用相对路径 tar zcf /$path/gz.tar.gz * # 打包正确不提示 tar ztvpf gz.tar.gz # 查看gz tar xvf 1.tar -C 目录 # 解包tar tar -cvf 1.tar * # 打包tar tar tvf 1.tar # 查

第11章 linux文档的压缩与打包

1. gzip, bzip2 能否直接压缩目录呢?   不能2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.  压缩 gzip 1.txt ;  解压gzip -d 1.txt.gz bzip 1.txt : 解压bzip -d 1.txt.bz23. tar 在打包的时候,如果想排除多个文件或者目录如何操作?   tar -cvf file.tar --exclude.a.txt --exclude b.txt 123/4. 请实验,如果不加 "-" 是否正确,

Linux文档的压缩与打包

linux系统中的后缀名其实要不要无所谓,但是对于压缩文件来讲必须要带上.这是为了判断压缩文件是由哪种压缩工具所压缩,而后才能去正确的解压缩这个文件.Linux压缩文件常见的后缀名所对应的压缩工具: .gz :gzip 压缩工具压缩的文件 .bz2:bzip2 压缩工具压缩的文件 .tar:tar 打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件) .tar.gz:可以理解为先用tar打包,然后再gzip压缩 .tar.bz2:先用tar打包,然后再bzip2压缩 1. g

Linux文档的压缩和打包

摘自:http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=7660&extra=page%3D1%26filter%3Dtypeid%26typeid%3D36 1. gzip工具语法: gzip [-d#] filename 其中#为1-9的数字,默认压缩级别为6,只能压缩文件gzip filename 生成filename.gz 源文件消失gzip -dv filename.gz 解压后,压缩文件也会消失(-v显示指令执行过

2015.3.27 Linux文档的压缩和打包

1.gzip工具   不支持压缩目录 语法:gzip [-d#] filename 其中#为1-9的数字,默认压缩级别为6 只能压缩文件 gzip filename 生成filename.gz源文件消失 解压gzip -d filename.gz解压后,压缩文件也会消失 2.bzip2压缩工具  不支持压缩目录 语法:bzip2 [-dz] filename 压缩时,可以加"-z"也可以不加,都可以压缩文件,bzip2 filename生成filename.bz2源文件消失 不支持压缩

Linux学习笔记(十三)--命令学习(文档的压缩与打包)

现在 1.网上下载的文件档都是压缩文件. 2.减少空间要用到压缩文件. 所以我们有必要学下怎么对文件的压缩与解压. linux 文档的压缩与打包命令 在linux中支持的压缩方式好多,但最常用的压缩方式是:     tar 命令 其压缩方式也有二种(gz & bz2)     现在我们要开始学习它的使用..... 命令 tar 功能 把文件进行打包与解包 语法 tar [-zjxcvfpP] filename 扩展 -z :是否同时用gzip压缩 -j :是否同时用bzip2压缩 -x :解包或

【linux相识相知】压缩与打包

我们日常使用window的时候,经常会用到压缩与解压缩,如果要压缩一个文件,右击选择[添加到压缩文件],解压缩则右击选择[解压到当前文件夹],“点点点”就能完成.但是在一个没有装图形化界面的linux操作系统又不能使用“点点点”,那该怎么操作呢?本文就linux中如何使用压缩和打包工具做出解释. 为什么要压缩文件 压缩的目的是为了就是将文件通过压缩算法转变成一个体积更小格式的文件,减小了文件在硬盘上的占用空间,压缩文件的时候,特别的消耗CPU的时钟周期,因为CPU要进行大量的计算,所有压缩也是一

2015-03-27Linux文档的压缩和打包

内容概要: 1. gzip工具 2. bzip2压缩工具 3. xz 4. zip及unzip 5. tar打包工具 语法:tar [-zjxcvfpP] filename 辨析:首先要弄清两个概念:打包和压缩.打包是指将一大堆文件或目录变成一个总的文件:压缩则是将一个大的文件通过一些压缩算法变成一个小文件. 在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识. 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包: 如果加 j 参数