linux下的打包和压缩
linux中常见的两种压缩包文件的格式是.tar、.gz和.tar.gz。.tar仅仅是将文件简单地打包,文件的大小没有变化,也就是说.tar文件仅仅是一个包,没有被压缩;.tar.gz文件是打包后用gzip压缩得到的。文件会被压缩存放,能够减小压缩文件的大小,能够便于传输和存储;.gz文件是将一个文件用gzip压缩之后得到的压缩文件。
经常使用的文件打包和压缩的命令是tar命令和gzip命令,以下分别介绍。
1、gzip和gunzip
gzip命令是用来压缩单个文件的。也就是说不能用来压缩文件夹。这样就不难理解为什么linux中要单独有一个用来打包的tar命令。因此。对于文件夹,能够先使用tar命令打包,然后用gzip命令进行压缩。
当然。如今利用tar中的某些选项,也能够一步到位,详见下文。
gunzip命令是用来对gzip产生的压缩文件进行解压的。事实上。gzip的-d选项就是用来解压缩的。所以gunzip就等同于gzip -d。
以下是gzip命令的几个样例:
- 将a.txt压缩为当前文件夹下的a.txt.gz(默认的名字就是这个样子在原文件名称的后面加一个.gz)
- gzip a.txt
- 将a.txt.gz解压到当前文件夹
- gunzip a.txt.gz
- gzip -d a.txt.gz
到这里不难发现gzip和gunzip在压缩文件或者是解压缩文件的时候,都会将原来的文件删除。因此,为了压缩或者解压缩之后保留源文件,我们要用到两个命令的-c选项。-c选项是将压缩的结果写到标准输出。这里用的是linux重定向的功能将标准输出中的压缩或者解压缩的结果写入到一个文件。从而得到解压缩或者压缩的结果。同一时候保留原文件。
- .gz压缩
- gzip -c filename > filename.gz
- 解压缩
- gunzip -c filename.gz > filename
- gzip -cd filename.gz > filename
2、tar
tar命令能够用来将文件夹打包。当中也提供了打包之后压缩的选项。
以下是tar命令使用的几个样例。
创建压缩文件.tar
以下的命令会将lfqy文件夹下的test文件夹压缩为test-02-07-14.tar
tar -cvf test-14-09-12.tar /home/lfqy/test
当中,-c选项代表创建新的tar文件(也就是压缩包);-v表示显示创建的过程。-f表示指定新创建的tar文件的名字。-f后面必需要紧跟文件名称。因此,f选项放在各个选项的最后面。
创建压缩文件.tar.gz
为了创建要给gzip压缩包,还要使用tar命令的-z选项。
以下的命令将lfqy文件夹下的test文件夹压缩为test-14-09-12.tar.gz。
tar -cvzf test-14-09-12.tar.gz /home/lfqy/test
这里要注意的是,和习惯上不同,在创建压缩包时。tar命令-f选项后面跟的是文件压缩后的名称。再后面才是被压缩文件的名称。
.tar文件的解压缩
为了解压.tar文件。要用到tar命令的-x选项取代压缩文件时用到的-c选项。文件默认会被解压到当前的文件夹,假设要指定解压到那个文件夹,须要用到-C选项。
以下的命令将文件解压到当前文件夹
tar -xvf filename.tar
以下的命令将文件解压到指定的文件夹
tar -xvf filename.tar -C /home/lfqy/file_untar/
tar.gz文件的解压缩
tar.gz文件解压缩的方式和tar文件同样
以下的命令将文件解压到当前文件夹
tar -xvf filename.tar.gz
以下的命令将文件解压到指定文件夹
tar -xvf filename.tar.gz -C /home/lfqy/file_untar/