日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化。

比如:如果你想通过邮箱发送一个文件夹,你会发现可能行不通,怎么办呢,难道将文件夹内的内容一个个发送吗?显然不用,因为邮箱不支持文件夹这种格式,所以我们需要将文件夹压缩,或将众多文件归档后压缩后,才能进行发送,这样不仅对应了邮箱支持的格式,而且还将提升传输效率。


任何一个文件在电脑上储存都有它的格式,现今各操作系统中最常用的压缩格式zip, rar;从功能上看rar格式比zip格式的压缩率更高,但压缩解压缩的时间也高于zip格式。当然除这两种格式外,还有很多的压缩格式。以下简述在命令行上压缩归档命令的一些技巧:

  • zip格式,由程序员菲尔卡次1989年发表,zip原义有拉链,速度的含义。zip在Linux,Mac os, Windows平台上都可以看到他的身影,虽然它在Linux下不太广泛,但在与其他平台交流数据时就很有用了。

1:在linux系统下用zip命令创建归档压缩文件:zip -r file.zip dir  //-r 表示对目录进行递归式归档

-q表示安静模式,不显示任何执行过程中的信息。

-d选项可以删除归档文件中一个或多个文件。 zip -d file.zip file1 file2 ...

2:unzip 可以提取出zip中的内容(相当于解压缩): unzip file.zip ;-l选项则可以列出压缩归档文件中的内容。

  • rar格式,开发者为尤金·罗谢尔,全名是“Roshal ARchive”,即“罗谢尔的归档”之意;多用于数据压缩与归档打包。
  • Linux下常用的的gz (gzip), bz2(bzip2), lzma格式:

1: gzip的使用方法(命令行, ->表示左边操作得到右边):

压缩:gzip filename->fliename.gz

解压缩:gunzip filename.gz->filename

列出压缩文件的属性信息:gzip -l filename.gz->各文件的具体信息

2: 因为gzip压缩只针对单个文件或数据流,所以时常与tar结合使用:

方式为先创建tar归档文件: tar -cvf filename.tar file1 file2 ... -> filename.tar

再使用gzip压缩: gzip filename.tar->filename.tar.gz

因为tar支持选项-z以gzip格式压缩,所以也可以:tar -cvzf filename.tar.gz file1 file2 .... ->filename.tar.gz

3:bzip2,lzma在功能与语法上与gzip相似,bzip2的压缩效率高于gzip,lzma最高

解压缩bzip2格式文件: bunzip filename.bz2 -> filename

解压缩lzma格式文件: unlzma filename.lzma -> filename

也可以使用-j, --lzma选项使用tar分别进行bzip2, lzma格式的压缩。

了解一些常见的压缩文件格式利于我们区分各式各样的文件噢。

最新文章

  1. 前端开发之走进Vue.js
  2. vim使用心得(持续更新)
  3. 移动H5前端性能优化指南
  4. 心血来潮学python
  5. Linux内核system_call中断处理过程
  6. Nginx+Django+Uwsgi+php
  7. (转载)OC学习篇之---类目的概念和使用
  8. android 权限总结
  9. 20155231 2016-2017-2 《Java程序设计》第5周学习总结
  10. 创建access数据库表demo的封装
  11. js登录,回车登录
  12. 【stm32开发之HAL采坑记之:001使用ST-LINK下载出错问题】
  13. linux与windows实现文件交互
  14. python turtle库的几个小demo
  15. ELK部署详解--filebeat
  16. CSS魔法堂:display:none与visibility:hidden的恩怨情仇
  17. spring4.0之七:Ordering Autowired Collections
  18. ODI 创建Java EE Agent
  19. N76E003之SPI
  20. UVA-10600 ACM Contest and Blackout (次小生成树)

热门文章

  1. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".错误的解决方法
  2. 【JavaEE】之MyBatis的ParameterType的使用
  3. 管道符和作业控制、shell变量、环境变量配置文件 使用介绍
  4. 《Windows内核安全与驱动开发》 5.1&5.2 内核与应用方面的编程
  5. 文件上传之靶场upload-labs (1-10)
  6. Reactive(3)5分钟理解 SpringBoot 响应式的核心-Reactor
  7. 使用react-breadcrumbs-dynamic
  8. Python 报错集合
  9. luogu P1801 【黑匣子_NOI导刊2010提高(06)】
  10. [TimLinux] JavaScript BOM浏览器对象模型