Linux学习总结(十四) 文件的打包和压缩

文件的压缩和打包,在windos下我们很熟悉.rar和.zip文件,这是两种压缩文件,他们支持单个文件和多个文件的压缩。windos下我们不提及打包的概念,虽然多个文件的压缩肯定存在打包过程。
打包和压缩的区别,从字面意思就可以看出,打包是将多个文件捆绑到一起,目的是方便拷贝和传输,压缩通常是对打包后的再处理,目的是节省资源,比如节省网络带宽,提高传输效率。
从以上结论中,我们就能理解为什么linux会有如此多的打包压缩工具,windos要求操作尽可能简单,linux要求高效和控制力。
几种打包压缩工具和其文件名后缀对应关系:
tar ----- .tar
gzip ------.gz
bzip2 -----.bz2
xz --------.xz
zip -------.zip

一 对于单个文件的处理:

介绍三种压缩工具:
1 gzip 将文件压缩后得到.gz后缀的包,不压缩目录
格式 gzip filename
gzip -d filename.gz 解压缩
gzip -c filename >> filname.gz 保留原文件压缩
gzip -dc filename.gz >> filename 保留原文件解压bzi
2.bzip2
用法基本和gzip一致,得到一个.bz2后缀的包
压缩 bzip2 filename
解压 bzip2 -d filename.bz2
3 xz
压缩 xz filname
解压 xz -d filename.xz

二 对于多个文件的处理:

1.先对文件打包, tar 命令
-c 创建包
-v 可视化
-f 指定文件
-x 解开包
格式 tar -cvf filename.tar filename1 filename2
不想看到过程-v可以不要
tar -xvf filename.tar
-C 可以指定解包路径
2.结合上面三种压缩方式,可以一并打包压缩
-z 用gzip压缩
-j 用bzip2压缩
-J 用xz压缩
那么三种打包并压缩的格式就是:
tar -zcvf filename.tar.gz filename1 filename2
tar -jcvf filename.tar.bz2 filename1 filename2
tar -Jcvf filename.tar.xz filename1 filename2
对应解压格式为:
tar -zxvf filename.tar.gz
tar -jxvf filename.tar.bz2
tar -Jxvf filename.tar.xz
如果你记不准几种格式的参数,那么解压的时候有种偷懒办法,不带格式,
tar -xvf filename.tar.gz 或者filename.tar.bz2 或者filename.tar.xz
系统自动匹配要解压的格式
3.zip压缩与unzip解压
该格式的好处是同时支持windos和linux环境,因此要在该两个环境传输文件首选zip压缩
格式 zip filename.zip filename1 filename2
filename.zip 带路径就可以指定压缩包的路径
-r 级联压缩目录
解压 unzip filename.zip
-d 指定解压目录
unzip filename.zip -d /tmp/
4 几种包的查看
tar包 tar -tf 查看包内文件列表
gzip 包 zcat 查看包内文件内容
bzip2 包 bzcat
xz包 xzcat
5.几种工具对比
gzip bzip2 xz 直接压缩和解压都不保留原文件,除非重定向。
tar zip 默认保留原文件

原文地址:http://blog.51cto.com/12606610/2074462

时间: 2024-08-30 09:03:55

Linux学习总结(十四) 文件的打包和压缩的相关文章

linux学习笔记十四:安装SAMBA(Server Message Block)

NFS:仅用于Linux之间 CIFS:仅用于Windows之间 SAMBA:可用于Linux与Windows之间,基于NetBIOS协议(用于LAN内部,不能跨路由),没有IP地址的概念,根据 NetBIOSName来区分主机. 两个服务: nmbd:UDP的137.138,管理工作组.NetBios name等. smbd:TCP的139,管理分享的目录.文件.打印机等. 两种模式:peer/peer(workgroup,对等模式). domain(域,主控模式) 1.安装samba.sam

Linux学习笔记十四周二次课(5月10日)

14.4 exportfs命令 #exportfs -arv //重新挂载 #vim /etc/exports /tmp/192.168.133.0/24(rw,sync,no_root_squash) 14.5 NFS客户端问题 #mount -t nfs -o nfsvers=3 192.168133.130:/tmp/ /mnt/ 指定版本为3,重新挂载 #mount -t nfs -oremount,nfsvers=3 192.168133.130:/tmp/ /mnt/ #vim /e

攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件的配置来实现. fstab是开机时的设置,实际文件系统的挂载是记录到/etc/mtab和/proc/mounts这两个文件中. 1.系统挂载的限制: A.根目录/必须挂载,而且一定是最先挂载的,要先于其他mount point. B.其他挂载点必须为已新建的目录,可以任意指定. C.所有挂载点在同一

linux学习第十周总结

linux学习第十周总结 接着上周的mysql,重点终结日志管理 ,备份还原,主从复制和mysql集群 一.mysql日志管理 事务日志 transaction log 错误日志 error log 通用日志 general log 慢查询日志 slow query log 二进制日志 binary log 中继日志 reley log 1.事务日志 事务型存储引擎自行管理和使用,建议和数据文件分开存放 redo log undo log Innodb事务日志相关配置: show variabl

linux杂谈(十四):ftp的企业应用级的配置(一)

1.ftp简介 (1)生活中的ftp 在互联网中我们需要传输数据,尤其是要传输大型数据.有一个服务是要着重去介绍的:ftp.其实我们以前很早就接触它了.只是大家可能不怎么关注,迅雷的基本模型就是ftp,不过是要高级的多. 事实上ftp应该是一种传输协议,之前它采用的是明文传输,如果在复杂的网络环境这样使用的话是非常危险的.为了更安全的使用这个协议,现在我们要采取更安全的软件vsftpd来提供服务. (2)ftp的功能介绍 1.它有着不同等级的用户身份:服务器本地用户:访客:匿名用户: 2.命令记

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

Linux学习命令汇总八——文件查找命令find选项及使用技巧

本章Blog相关Linux知识点 find与grep的不同点: find为文件搜索命令--用来在指定目录下查找文件,而grep 为文本搜索命令--根据用户指定的文本模式对目标文件进行逐步搜索,显示能够被匹配的行 : find选项支持文件通配符,而grep选线支持正则表达式  : find查找为精确查找,精确匹配但搜索速度稍慢. grep命令选项及正则表达式类型,详细请参考前文"Linux学习命令汇总三--Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式"   bas

C++语言学习(十四)——C++类成员函数调用分析

C++语言学习(十四)--C++类成员函数调用分析 一.C++成员函数 1.C++成员函数的编译 C++中的函数在编译时会根据命名空间.类.参数签名等信息进行重新命名,形成新的函数名.函数重命名的过程通过一个特殊的Name Mangling(名字编码)算法来实现.Name Mangling算法是一种可逆的算法,既可以通过现有函数名计算出新函数名,也可以通过新函数名逆向推导出原有函数名.Name Mangling算法可以确保新函数名的唯一性,只要命名空间.所属的类.参数签名等有一个不同,那么产生的

JavaScript学习总结(十四)——JavaScript编写类的扩展方法

在?J?a?v?a?S?c?r?i?p?t?中?可以使?用?类的p?r?o?t?o?t?y?p?e属性来?扩?展?类的属?性?和?方?法,在实际开发当中,当JavaScript内置的那些类所提供的动态方法和动态属性不满足我们实际开发时,我们就可以通过"prototype"属性给自定义类添加方法和属性或者扩展原有的类中的方法和属性. 一.扩展JavaScript内置类,添加动态方法 语法格式: 类名.prototype.方法名 = function([param1],[param2],.

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n