Linux下打包和解压

Linux下使用tar命令来进行打包和解压的操作,再搭配常见压缩算法,可以实现对文件的压缩打包解压缩,常见的压缩算法有gzip,bzip2,还有deflate、snappy等其他的,这里不做记录。

压缩

通过算法,将文件尺寸进行相应缩小,同时不损失文件内容。常用压缩算法如gzip和bzip2,使用压缩算法后文件名分别为*.gz和*.bz2。使用旧的compress算法压缩的文件名为*.Z,目前比较少用。

gzip

gzip压缩解压使用命令 gzip [选项] 文件名,其中有如下常用选项。

(1)-c:将压缩的数据输出到标准输出stdout,一般是乱码

(2)-d:解压缩

(3)-v:显示压缩文件/原文件压缩比

(4)-l:查看压缩文件压缩比

(5)-(1~9):1代表更快的压缩,9代表更高的压缩比,默认为6

(6)-t:检查一个压缩文件的一致性

gzip -c 标准输出,是乱码。

直接压缩,发现原始文件会被删除。

解压, 原始文件被删除。

使用如下数据重导向,可以让原文件还保存 。

使用-9来提压缩比,对比发现确实有所提高。

# 使用-9提高压缩比[[email protected] /home/yangchaolin]# gzip -9 secure
[[email protected] /home/yangchaolin]# ll -lh
total 52K# 压缩完2.1k,压缩比88.5%
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.1K Oct 20 08:35 secure.gz
[[email protected] /home/yangchaolin]# gzip -l secure.gz
         compressed        uncompressed  ratio uncompressed_name
               2135               18311  88.5% secure
[[email protected] /home/yangchaolin]# gzip -d secure.gz
[[email protected] /home/yangchaolin]# ll -lh
total 68K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 08:35 secure
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
# 使用默认-6压缩[[email protected] /home/yangchaolin]# gzip -v secure
secure:     88.4% -- replaced with secure.gz# 压缩完2.2k,压缩比88.4%,压缩比略微比-9低一点
[[email protected] /home/yangchaolin]# ll -lh
total 52K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.2K Oct 20 08:35 secure.gz# 检查压缩文件,无错误
[[email protected] /home/yangchaolin]# gzip -t secure.gz

bzip2

bzip2压缩解压使用命令 bzip2 [选项] 文件名,常用选项跟gzip类似。

(1)-c:将压缩的数据输出到标准输出stdout,一般是乱码

(2)-d:解压缩

(3)-k:压缩会保留原文件

(4)-v:显示压缩文件/原文件压缩比

(5)-(1~9):1代表更快的压缩,9代表更高的压缩比

(6)-t:验证压缩后文件完整性

下面将上面选项操作一下。

[[email protected] /home/yangchaolin]# ll -lh
total 68K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 09:16 secure
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
# bzip2默认压缩,可以看出压缩比很高[[email protected] /home/yangchaolin]# bzip2 secure
[[email protected] /home/yangchaolin]# ll -lh
total 52K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.1K Oct 20 09:16 secure.bz2# 解压,待继续测试
[[email protected] /home/yangchaolin]# bzip2 -d secure.bz2
[[email protected] /home/yangchaolin]# ll
total 68
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 09:16 secure
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak# -v可以显示压缩比
[[email protected] /home/yangchaolin]# bzip2 -v secure
  secure:   8.757:1,  0.914 bits/byte, 88.58% saved, 18311 in, 2091 out.
[[email protected] /home/yangchaolin]# ll -lh
total 52K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.1K Oct 20 09:16 secure.bz2# -t检查压缩文件完整性
[[email protected] /home/yangchaolin]# bzip2 -t secure.bz2# 解压
[[email protected] /home/yangchaolin]# bzip2 -d secure.bz2
[[email protected] /home/yangchaolin]# ll -lh
total 68K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 09:16 secure
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak# -k可以保留原文件
[[email protected] /home/yangchaolin]# bzip2 -k secure
[[email protected] /home/yangchaolin]# ll -lh
total 72K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber# 原文件未被删除
-rw-------. 1 root root  18K Oct 20 09:16 secure
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.1K Oct 20 09:16 secure.bz2

一般来说,bzip2拥有更高的压缩比,gzip拥有更快的压缩速度。

可以使用zcat查看gzip算法压缩后的文本内容,使用bzcat查看bzip2压缩算法压缩后的文本内容。

[[email protected] /home/yangchaolin]# zcat secure.gz
Oct 14 22:55:03 node01 sshd[1221]: Server listening on 0.0.0.0 port 22.
Oct 14 22:55:03 node01 sshd[1221]: Server listening on :: port 22....省略
[[email protected] /home/yangchaolin]# ll
total 56
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak
-rw-------. 1 root root  2091 Oct 20 09:16 secure.bz2
-rw-------. 1 root root  2161 Oct 20 09:16 secure.gz
[[email protected] /home/yangchaolin]# bzcat secure.bz2
Oct 14 22:55:03 node01 sshd[1221]: Server listening on 0.0.0.0 port 22.
Oct 14 22:55:03 node01 sshd[1221]: Server listening on :: port 22....省略

打包和解压

使用tar命令,配合上面的gzip和bzip2,可以对一个文件进行压缩和解压,以gzip压缩算法为例,语法如下,bzip2的后缀换成bz2。

打包压缩语法:tar [选项] 新文件名.tar.gz 原始文件名

包解压语法:tar [选项] 文件名.tar.gz [-C 目标路径],如果没有指定目标路径就解压到当前目录,-C就是指定目标路径的。

常用选项如下。

(1)-c:打包

(2)-x:解压包

(3)-z:通过gzip支持的压缩和解压缩,文件名*.tar.gz

(4)-j:通过bzip2支持的压缩和解压缩,文件名*.tar.bz2

(5)-v:压缩解压缩的过程中将正在处理的文件名显示出来

(6)-f:后面跟处理文件的全路径,即路径+文件+后缀

(7)-C:如果解压到特定目录,需要使用它

(8)-t:查看打包文件的内容

常用的就是-zcvf组合,-zxvf组合了,在安装软件时常用,下面演练一下。

# 使用gzip压缩打包,显示正在处理的文件名[[email protected] /home/yangchaolin]# tar -zcvf secure.tar.gz secure# 显示的文件名
secure
[[email protected] /home/yangchaolin]# ll
total 80
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 09:47 secure
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak
-rw-------. 1 root root  2091 Oct 20 09:16 secure.bz2
-rw-------. 1 root root  2161 Oct 20 09:16 secure.gz
-rw-r--r--. 1 root root  2229 Oct 20 09:48 secure.tar.gz# 使用bzip2压缩打包,显示正在处理的文件名
[[email protected] /home/yangchaolin]# tar -jcvf secure.tar.bz2 secure# 显示文件名
secure
[[email protected] /home/yangchaolin]# ll -lh
total 84K
-rw-r--r--. 1 root root  22K Oct 20 01:25 log.txt
-rw-r--r--. 1 root root 2.1K Oct 20 03:22 primeNumber
-rw-------. 1 root root  18K Oct 20 09:47 secure
-rw-------. 1 root root  18K Oct 20 08:45 secure_bak
-rw-------. 1 root root 2.1K Oct 20 09:16 secure.bz2
-rw-------. 1 root root 2.2K Oct 20 09:16 secure.gz# 使用压缩算法打包后两文件
-rw-r--r--. 1 root root 2.2K Oct 20 09:48 secure.tar.bz2
-rw-r--r--. 1 root root 2.2K Oct 20 09:48 secure.tar.gz
# 使用gzip解压,注意使用-x代表解压
[[email protected] /home/yangchaolin]# tar -zxvf secure.tar.gz
secure
[[email protected] /home/yangchaolin]# ll
total 84
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 09:47 secure
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak
-rw-------. 1 root root  2091 Oct 20 09:16 secure.bz2
-rw-------. 1 root root  2161 Oct 20 09:16 secure.gz
-rw-r--r--. 1 root root  2201 Oct 20 09:48 secure.tar.bz2
-rw-r--r--. 1 root root  2229 Oct 20 09:48 secure.tar.gz
# 创建目录用于保存加压文件
[[email protected] /home/yangchaolin]# mkdir decompress
[[email protected] /home/yangchaolin]# ll
total 88
drwxr-xr-x. 2 root root  4096 Oct 20 09:52 decompress
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 09:47 secure
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak
-rw-------. 1 root root  2091 Oct 20 09:16 secure.bz2
-rw-------. 1 root root  2161 Oct 20 09:16 secure.gz
-rw-r--r--. 1 root root  2201 Oct 20 09:48 secure.tar.bz2
-rw-r--r--. 1 root root  2229 Oct 20 09:48 secure.tar.gz# 使用gzip解压,-C指定解压后目录
[[email protected] /home/yangchaolin]# tar -zxvf secure.tar.gz -C /home/yangchaolin/decompress/
secure
[[email protected] /home/yangchaolin]# cd decompress/# 查看已解压完成
[[email protected] /home/yangchaolin/decompress]# ll
total 20
-rw-------. 1 root root 18311 Oct 20 09:47 secure
[[email protected] /home/yangchaolin/decompress]# ll
total 20
-rw-------. 1 root root 18311 Oct 20 09:47 secure
[[email protected] /home/yangchaolin/decompress]# rm -rf secure
[[email protected] /home/yangchaolin/decompress]# ll
total 0
[[email protected] /home/yangchaolin/decompress]# cd ..
[[email protected] /home/yangchaolin]# ll
total 88
drwxr-xr-x. 2 root root  4096 Oct 20 09:53 decompress
-rw-r--r--. 1 root root 21529 Oct 20 01:25 log.txt
-rw-r--r--. 1 root root  2078 Oct 20 03:22 primeNumber
-rw-------. 1 root root 18311 Oct 20 09:47 secure
-rw-------. 1 root root 18311 Oct 20 08:45 secure_bak
-rw-------. 1 root root  2091 Oct 20 09:16 secure.bz2
-rw-------. 1 root root  2161 Oct 20 09:16 secure.gz
-rw-r--r--. 1 root root  2201 Oct 20 09:48 secure.tar.bz2
-rw-r--r--. 1 root root  2229 Oct 20 09:48 secure.tar.gz# 使用bz2解压,-C指定解压后目录
[[email protected] /home/yangchaolin]# tar -jxvf secure.tar.bz2 -C /home/yangchaolin/decompress/
secure
[[email protected] /home/yangchaolin]# cd decompress/# 查看发现已解压
[[email protected] /home/yangchaolin/decompress]# ll
total 20
-rw-------. 1 root root 18311 Oct 20 09:47 secure

以上是对压缩解压缩,打包和解压缩包的整理,留着后面查看用。

原文地址:https://www.cnblogs.com/youngchaolin/p/11711141.html

时间: 2024-10-10 01:17:38

Linux下打包和解压的相关文章

linux 下 打包 和解压缩

01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gzip FileName 03-.tar.gz格式解压:[*******]$ tar zxvf FileName.

linux下压缩和解压命令详解

tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.jpg

在 Linux 下压缩和解压

压缩 1. gzip $ gzip [-cdtv#] filename -c :将压缩的数据输出到屏幕上 -d :解压缩 -t :检验压缩文件是否出错 -v :显示压缩比等信息 -# :# 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6 2. bzip2 $ bzip2 [-cdkzv#] filename -k :保留源文件 3. xz $ xz [-dtlkc#] filename 打包 $ tar [-z|-j|-J] [cv] [-f 新建的tar文件] filename =

Java多层目录打包和解压代码(apache commons compress, io, lang)

Java多层目录打包和解压代码(apache commons compress, io, lang) package zip;   import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fil

linux zip压缩和解压的各种操控

1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3.把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4.把/home目录下面的wwwroot.zip直接解压到/home目录

linux下 zip解压 tar解压 gz解压 bz2等各种解压文件命令

.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------- .gz 解压 1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName --------

Linux下压缩/解压方法大全

linux下压缩包格式繁多,并且在命令行下没有Windows下使用那么方便,有时候解压文件的时候会突然忘掉命令,这里fcbu.com为大家收集了基本所有文件格式的解压方法和打包命令.需要的可以参考一下: .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar只是打包,没有经过压缩的!) --------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz

linux下各种解压命令

.tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName .tar.gz 和 .tgz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName---------------.bz2

Linux下压缩/解压

Linux下各种压缩包的解压方法 作者:intq 时间:2009-9-25 文章来源:来自网络 -------------------------------------------------------------------------------- .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz