linux下文件的打包和压缩
文章来源:linux下文件的打包和压缩
一、文件压缩的原理
简单来说,压缩技术就是在存储时将文件里面没有使用的空间利用起来,主要有以下两种情况。
存储时去掉没有用到的空间。假设我们只是存储一个数字 1 ,二进制表示数字1只需1个bit是1就可以表示(1=1*2^0),但是为了满足操作系统对数据的存取要求,只能通过byte的形态来记录。1 byte = 8 bits,所以每个byte当中会有8个bits,而其他的7个bits将自动的被填上0,其实那7个bits是没有用到的。
另外一种压缩技术是将重复的数据进行统计记录。举例来说,如果数据为[1111…]共有100个1,那么记录为“100个1”也能精简文件的大小。
二、linux常见的压缩指令
Linux支持的压缩指令可以通过不同的后缀名进行区分,常见的扩展名:
- .zip:zip程序压缩的文件
- .gz:gzip程序压缩的文件
- .bz2:bzip2程序压缩的文件
- .xz:xz程序压缩的文件
- .tar:tar程序打包的数据,并没有压缩过
- .tar.gz:tar程序打包的数据,经过gzip压缩过
- .tar.bz2:tar程序打包的数据,经过bzip2压缩过
- .tar.xz:tar程序打包的文件,经过xz压缩过
三、常用实例
以把/etc中内容打包压缩到/tmp/etc.*,然后在解压回/etc为例
1、tar命令
打包:tar -cvf /tmp/etc.tar /etc
解包:tar -xvf /tmp/etc.tar /etc
常用参数 :
-c :建立压缩档案(create 的意思);
-x :解压档案!
-v : 显示所有过程 ,执行过程会打印在屏幕上!
-f : 使用档案名字,这个参数是最后一个参数,后面只能接档案名。
2、zip命令
压缩:zip -r /tmp/etc.zip /etc
解压:unzip /tmp/etc.zip /etc
- -r: 将指定的目录下的所有子目录以及文件一起处理
3、gz命令
压缩:tar -czvf /tmp/etc.tar.gz /etc
解压:tar -xzvf /tmp/etc.tar.gz /etc
- -z:使用gzip命令对文件进行压缩或解压缩。
4、bz2命令
压缩:tar -cjvf /tmp/etc.tar.bz2 /etc
解压:tar -xjvf /tmp/etc.tar.bz2 /etc
- -j:使用bz2命令对文件进行压缩或解压缩。
5、xz命令(必须分两步)
打包:tar -cvf /tmp/etc.tar /etc
压缩:xz -z /tmp/etc.tar #将 /tmp/etc.tar压缩成为 /tmp/etc.tar.xz
解压缩:xz -d etc.tar.xz #将 etc.tar.xz解压成 etc.tar
解包:tar -xvf etc.tar
-z:使用xz命令对文件进行压缩操作。
-d:使用xz命令对文件进行解压缩操作。
以上命令均可以将多个文件夹或文件打包压缩到一个文件中
总结:
没有特殊要求推荐使用bz2命令,它是速度和压缩比都比较折中的命令,如果想要快速压缩文件,可以使用gz命令,如果追求最高的压缩比,可以使用xz命令 。
linux下文件的打包和压缩的更多相关文章
- Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar
本文是笔者对鸟叔的Linux私房菜(基础学习篇) 第三版(中文网站)中关于 Linux 环境下打包和解压缩指令的内容以及日常操作过程中所接触的相关指令的总结和记录,以供备忘和分享.更多详细信息可直接参 ...
- Linux下文件的打包、解压缩指令——tar,gzip,bzip2
本文是对 鸟叔的Linux私房菜(基础学习篇) 第三版 的学习笔记,原文可参考原书中文网站 鸟叔的Linux私房菜.更多详细信息可直接参考对应Linux命令的 man 帮助( 如 man tar). ...
- Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img.
Linux下 解包/打包 Android 映像文件 system.img, boot.img, ramdisk.img, userdata.img. 2014年10月20日 ⁄ 计算机视觉 ⁄ 共 1 ...
- 学习笔记12—linux下文件的复制、移动与删除
查看centOS 版本 cat /etc/redhat-release 1,复制粘贴文件 cp [选项] 源文件或目录 目标文件或目录 2,剪切粘贴文件 mv [选项] 源文件或目录 ...
- Linux的文件的打包(tar方法)
Linux的文件的打包(tar方法) tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一 ...
- Linux下文件的三种时间戳
Linux下文件的三种时间标记 三种时间对应关系表 column column column 访问时间 Access atime 修改时间 Modify mtime 状态改动时间 Change cti ...
- linux下文件结束符
linux下文件结束符,我试过了所有的linux,发现其文件的结束符都是以0a即LF结束的,这个是操作系统规定的,windows下是\r\n符结束,希望可以帮助大家. -------------转:来 ...
- dos2unix,去掉Linux下文件中的^M
Windows系统下使用VS2010编写好的CPP文件,想放到Linux上进行编译.发现Linux上文件中的每行代码末尾都跟着^M这个符号. 为什么同一份文件在windows上和Linux上显示的不一 ...
- linux下文件的复制、移动与删除
linux下文件的复制.移动与删除命令为:cp,mv,rm 一.文件复制命令cp 命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination) ...
随机推荐
- link与@import区别整理,一个表格带你了解
网上有许多link和@import的文章,不过大多比较零散,个人觉得一个表格的话看起来能够直观的表达. 于是制作了如下表格: 关于权重这个存在着一些争议,这次碰巧看到了一篇的博客很好的解释了这个问题, ...
- What is MongoDB and For What?
1.MongoDB是什么? MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统.没错MongoDB就是数据库,是NoSQL类型的数据库 2.为什么要用MongoDB? (1)Mo ...
- bitset 相关题目
std::bitset 的语法就不搬运了, 直接看题吧 #515. 「LibreOJ β Round #2」贪心只能过样例 题意: 给出 n 个数 \(x_i\), 每个数的取值范围为 \([a ...
- [POJ2533]Longest Ordered Subsequence<dp>
题目链接:http://poj.org/problem?id=2533 描述: A numeric sequence of ai is ordered if a1 < a2 < ... & ...
- vi文本编辑器的学习
vi文本编辑器的启动与退出 启动:快捷键Ctrl+Alt+t进入终端, 在系统提示符($或#)的提示下,输入vi <文件名称>,可以自动载入你要编辑的文件或者新建一个文件. 退出:在指令模 ...
- C 怪兽游戏
时间限制 : - MS 空间限制 : - KB 评测说明 : 1s,256m 问题描述 何老板在玩一款怪兽游戏.游戏虽然简单,何老板仍旧乐此不疲.游戏一开始有N只怪兽,编号1到N.其中第i只怪兽 ...
- 荐书在精不在多,推荐一份夯实Java基础的必备书单!
文/黄小斜 转载请注明出处 head first Java 推荐指数:⭐️⭐️⭐️⭐️⭐️ 推荐理由: 说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通 ...
- Mysql索引、explain执行计划
1.索引的使用场景 哪些情况使用索引: 1.主键自动建立唯一索引 2.频繁作为查询条件的字段应该创建索引 where 3.多表关联查询中,关联字段应该创建索引on两边都要创建索引 select * f ...
- matplotlib IdentityTransform(原地变换)
2020-04-12 23:33:56 -- Edit by yangrayIdentityTransform继承于Affine2DBase类,它是一个高效实现原地变换的类.(不知道有什么用,变换前后 ...
- matplotlib中的基本概念
有外语基础的朋友看这里: matplotlib官方文档 Figure(图像): 组成部分