在Linux下对文件或者目录进行打包压缩

Posted hopelooking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux下对文件或者目录进行打包压缩相关的知识,希望对你有一定的参考价值。

一、压缩命令[compress/gzip/bzip2]:

压缩只能对文件,不能对目录,目录要先打包,然后再压缩。

 

(1)compress

 

(2)gzip

1、压缩文件

 

[cpp] view plain copy
 
  1. gzip hosts          #将hosts压缩成hosts.gz,不保留原文件  
  2. gzip -c hosts > xx/hosts.gz  #将hosts压缩成hosts.gz,保留原文件,还可以指定路径  

 

2、查看压缩文件内容

 

[cpp] view plain copy
 
  1. zcat hosts.gz  

 

3、解压

 

[cpp] view plain copy
 
  1. gzip -d hosts.gz        #不指定路径的解压,解压到当前目录下、不保留压缩文件  
  2. gzip -d -c hosts.gz > xx/hosts   #指定路径的解压,同时保留压缩文件  

 

(3)bzip

1、压缩文件

 

[cpp] view plain copy
 
  1. bzip2 hosts.bz2         #将hosts压缩成hosts.bz2,不保留原文件  
  2. bzip2 -c hosts > xx/hosts.bz2    #将hosts压缩成hosts.gz,保留原文件,还可以指定路径<span style="font-size:18px;">  
  3. </span>  

 

2、查看压缩文件内容

 

[cpp] view plain copy
 
  1. bzcat hosts.bz2  

 

3、解压

 

[cpp] view plain copy
 
  1. bzip2 -d hosts.bz2          #不指定路径的解压,解压到当前目录下、不保留压缩文件  
  2. bzip2 -d -c hosts.bz2 > xx/hosts #指定路径的解压,同时保留压缩文件  
 

总结:

 

-c:指定路径、保留文件

-d:解压

gzip、bzip2默认不保留原文件/压缩文件。

 

 

二、打包/压缩命令[tar]

2.1 打包/解包:

(1)打包单个文件

 

[cpp] view plain copy
 
  1. tar cvf aa.tar aa           #默认保留原文件  
  2. tar cvf aa.tar aa --remove-file     #打包后删除原文件  

 

(2)打包多个文件

[cpp] view plain copy
 
  1. tar cvf ab.tar aa bb            #默认保留原文件  
  2. tar cvf aa.tar aa bb --remove-file  #打包后删除原文件  

 

(3)查看包里的内容

[cpp] view plain copy
 
  1. tar tvf aa.tar  

 

(4)解包

[cpp] view plain copy
 
  1. tar xvf aa.tar              #不指定路径的解包,解包到当前目录下  
  2. tar xvf aa.tar -C xx/aa         #指定路径的解包  

 

 

2.2 打包并压缩/解压并解包:

 

以gzip格式

(1)打包单个文件并压缩

[cpp] view plain copy
 
  1. tar zcvf aa.tar.gz aa           #保留原文件  
  2. tar zcvf aa.tar.gz aa --remove-file #不保留原文件  

 

(2)打包多个文件并压缩

[cpp] view plain copy
 
  1. tar zcvf ab.tar.gz aa bb        #保留原文件  
  2. tar zcvf ab.tar.gz aa bb --remove-file  #不保留原文件  

 

(3)解压

[cpp] view plain copy
 
  1. tar zxvf ab.tar.gz      #不指定路径解压、解包  
  2. tar zxvf ab.tar.gz -C xx/ab #指定路径解压、解包  

 

以bizp2格式

(1)打包单个文件并压缩

[cpp] view plain copy
 
  1. tar jcvf aa.tar.bz2 aa          #保留原文件  
  2. tar jcvf aa.tar.bz2 aa --remove-file    #不保留原文件  

 

(2)打包多个文件并压缩

[cpp] view plain copy
 
  1. tar jcvf ab.tar.bz2 aa bb       #保留原文件  
  2. tar jcvf ab.tar.bz2 aa bb --remove-file #不保留原文件  

(3)解压

[cpp] view plain copy
 
  1. tar jxvf ab.tar.bz2     #不指定路径解压、解包  
  2. tar jxvf ab.tar.bz2 -C xx/ab    #指定路径解压、解包  


总结:

-C:指定路径

--remove-file:删除原文件

tar命令默认保留原文件。





以上是关于在Linux下对文件或者目录进行打包压缩的主要内容,如果未能解决你的问题,请参考以下文章

怎样在linux下对目录进行压缩生成gz文件

linux下怎样将目录压缩打包

Linux里的几种不同的压缩命令小记

Linux就该这么学——新手必须掌握的命令之打包压缩与搜索命令组

Linux中用tar命令对文件夹进行打包压缩

linux环境文件或者文件夹打包