linux中常见的两种压缩包文件的格式是.tar、.gz和.tar.gz。.tar仅仅是将文件简单地打包,文件的大小没有变化,也就是说.tar文件仅仅是一个包,没有被压缩;.tar.gz文件是打包后用gzip压缩得到的。文件会被压缩存放,能够减小压缩文件的大小,能够便于传输和存储;.gz文件是将一个文件用gzip压缩之后得到的压缩文件。

经常使用的文件打包和压缩的命令是tar命令和gzip命令,以下分别介绍。

1gzipgunzip

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

2tar

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/

最新文章

  1. 利用filter过虑用户请求URI显示对应页面内容
  2. 微信小程序开发初体验
  3. Kerberos是怎么工作的?
  4. git 提交时保存 帐号密码
  5. C++二叉树的实现
  6. C#将数据以XML格式写入Excel
  7. div+css与table布局
  8. 一篇文章带你了解Cloud Native
  9. JSP学习(1)---JSP基本原理
  10. 解决Table不继承父节点的属性的方法
  11. 前端lvs访问多台nginx代理服务时出现404错误的处理
  12. 学习笔记《简明python教程》
  13. web----ssl通信
  14. IDEA创建Maven Web项目
  15. (Gorails) activeStore模块,把一堆属性放在一个hash对象内。gem 'activerecord-typedstore'增强了store模块,更好用了
  16. nginx 本地映射
  17. 详解如何使用Docker Hub官方的MySQL镜像生成容器
  18. 使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)
  19. Python获取间隔时间段的时间戳数据
  20. [ubuntu]为ubuntu设立“任务管理器”的组合键

热门文章

  1. visualSVN+花生壳实现外网访问局域网内SVN
  2. Hibernate5配置与使用具体解释
  3. beego的orm ,用的数据库sqlite3
  4. 关于Webpack详述系列文章 (第一篇)
  5. Robot Framework 自动化测试
  6. [NPM] Update published npm packages using np
  7. winform程序,备份数据库+并压缩+并删除以前的备份
  8. 15个常用的javaScript正则表达式--来自于javascript公众号
  9. 本文介绍C# BitmapData
  10. MyBatis学习总结(13)——Mybatis查询之resultMap和resultType区别