文件打包归档

admin 提交于 周三, 12/13/2017 - 17:27

在日常工作中,把文件打包是常见的操作。在Linux服务器管理中,把文件打包备份也是必要的维护步骤。

 

1. tar

tar是最常见的打包命令,下面命令可以把foo目录打包后以gzip格式压缩:

tar -czvf foo.tar.gz foo

如果想以高一点的压缩率压缩成bzip2文件,可以用下面命令:

tar -cjvf foo.tar.bz2 foo

如果希望压缩率再高一些,可以用下面命令压缩成xz格式(注意J参数是大些的):

tar -cJvf foo.tar.xz foo

如果我们要打包一个很大的目录,使用压缩会明显降低速度,如果我们不太在意硬盘空间,而更在意完成打包这件事的时间,那么可以不加压缩参数,例如:

tar cvf foo.tar foo

为了兼容旧系统,tar命令的参数允许没有减号前缀,例如解压一个文件包可以写成:

tar xzvf foo.tar.gz

 

2. gzip

gzip的语法很简单,下面命令会生成一个foo.gz文件

gzip foo

下面2条命令都可以达到同样的解压目的:

 

gzip -d foo.gz

gunzip foo.gz

3. bzip2

bzip2的用法和gzip是一致的,以下是几个例子:

 

bzip2 foo

bzip2 -d foo.bz2

bunzip2 foo.bz2

4. zip, unzip

zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。国内Windows用户比较常用rar来压缩,然而rar不是自由软件,外国不算很普及。而zip则是Mac和Linux系统自带的。笔者曾经在一家外企电信企业工作的时候遇到过这样的情况,国内的员工用rar打包文件发给国外的同事,国外的同事就抱怨解压不了rar格式。在国内,我们可能很奇怪,装个winrar软件不就行了吗?一方面,别人不用盗版(winrar是收费软件);另一方面,Linux上解压rar确实不太方便。


下面命令将/home/test/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip,其中参数r表示压缩目录,参数9表示以最高压缩比压缩。

zip -r9 html.zip /home/test/html

unzip命令用于解压缩由zip命令压缩的“.zip”压缩包。

 

以下是几条命令实例:

  1. 将压缩文件text.zip在当前目录下解压缩

unzip test.zip

 

  1. 将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件

unzip -n test.zip -d /tmp

 

  1. 将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件

unzip -o test.zip -d tmp/

 

5. LPI考纲描述

3.1 Archiving Files on the Command Line

Weight:  2

Description: Archiving files in the user home directory.

Key Knowledge Areas:

  • Files, directories
  • Archives, compression

Terms and Utilities:

  • tar
  • Common tar options
  • gzip, bzip2
  • zip, unzip

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
验证码
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
请输入"汉语"