Linux学习笔记(十九)文件压缩

一、常见的压缩文件

Windows .rar .zip .7z

Linux .zip,.gz,.bz2,.xz,.tar.gz,.tar.bz2,.tar.xz
文件压缩可以节省内存,也可以节省传输速度

二、gzip

首先创建了一个文件夹 /tmp/d6z/
找了些比较大的文件写入1.txt
例如
find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \ ;
多执行几次

gzip 1.txt

就可以将文件1.txt压缩并且删除源文件
可以看到之前1.txt大小为8.5m
压缩后1.9m

gzip -d 1.txt.gz

解压文件,这时候发现1.txt比原来小了,这是因为压缩后会删除一些没必要的空间,

wc -l 1.txt  

可以查看文件行数,压缩解压缩前后可以查看文件是否变化
gzip -1 1.txt
这里的-1是压缩级别,共九个级别,默认为6,数字越小,压缩率越低,压缩后文件越大,资源耗费越小,反之亦然,一般压缩时压缩级别保持默认即可
gunzip 1.txt.gz
也可以用来解压缩文件

file 1.txt.gz 

查看压缩文件的信息

zcat 1.txt.gz

可以查看压缩包中文件的内容

gzip -c 1.txt > /root/1.txt.gz

将文件压缩到指定路径并指定文件名而且不删除源文件

gunzip -c /root/1.txt.gz > /tmp/1.txt.new

将压缩文件解压到指定文件夹并指定文件名,不删除原压缩文件
注意:gzip不可以压缩目录
参数选项

-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
--best:此参数的效果和指定“-9”参数相同;
--fast:此参数的效果和指定“-1”参数相同。
三、bzip2

如果没有安装就先安装bzip2
yum install -y bzip2

bzip2 1.txt

bzip2 1.txt  / bzip2 -z 1.txt
 bzip2 -d 1.txt.bz2 / bunzip2 1.txt.bz2
 bzip -# 1.txt  //#范围1-9,默认9
 不能压缩目录
 bzcat 1.txt.bz2
 bzip2 -c 1.txt > /root/1.txt.bz2
 bzip2 -c -d /root/1.txt.bz2 > /tmp/1.txt.new2

bzip2用法基本与gzip相同

bzcat 1.txt.bz2
查看压缩文件的文件内容
参数选项

-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
--repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
--repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。
四、xz

xz压缩的用法也基本与gzip、bzip2类似

xz 1.txt  / xz -z 1.txt
 xz -d 1.txt.xz / unxz 1.txt.xz
 xz -# 1.txt  //#范围1-9,默认9
 不能压缩目录
 xzcat 1.txt.xz
 xz -c 1.txt > /root/1.txt.xz
 xz -d -c /root/1.txt.xz > 1.txt.new3

压缩后文件大小方面
gzip>bzip2>xz
也就是xz最耗费资源,压缩后文件最小

原文地址:http://blog.51cto.com/13569831/2074507

时间: 2024-07-31 00:37:29

Linux学习笔记(十九)文件压缩的相关文章

Linux学习笔记&lt;十九&gt;——系统裁剪之一

grub-->kernel-->initrd-->ROOTFS(/sbin/init, /bin/bash) 自行在一块新硬盘上组建一个简单的Linux系统,具有/sbin/init初始化,能够使用/bin/bash 1.磁盘分区:只创建boot分区mount到/mnt/boot和根分区mount到/mnt/sysroot 2.cp /boot/vmlinuz-`uname -r` /mnt/boot/vmlinuz 3.grub-install --root-directory=/mn

angular学习笔记(十九)

本篇主要介绍angular使用指令修改DOM: 使用angular指令可以自己扩展html语法,还可以做很多自定义的事情.在后面会专门讲解这一块的知识,这一篇只是起到了解入门的作用. 与控制器,过滤器,服务,一样,可以通过模块实例的directive的方法来创建指令: var someModule = angular.module('SomeModule',[]); someModule.directive('directiveName',function(){ return { link: f

学习笔记(九)——压缩和打包

1.压缩与解压缩: 压缩与解压缩常用的方式有gz, bz2, xz, zip,下面分别介绍一下这几种方式: (1)gzip: 该命令可以将文件压缩为 gz 格式: [[email protected]~]# gzip file.log 压缩后,当前目录下的 file.log文件会消失,压缩后的文件名为file.log.gz . 压缩时可以手动指定压缩级别,压缩级别从 1 到 9,数字越大压缩比例越高,默认的压缩级别为 6 ,一般使用默认压缩级别即可,使用如下方式指定压缩级别: [[email p

Linux学习笔记&lt;十&gt;——vim编辑器

vi:Visual Interface vim:Visual Interface iMproved vim模式: 编辑模式(命令模式):默认打开vim后处于的模式 输入模式 末行模式 模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式: a: 在当前光标所在字符的后面,转为输入模式: o: 在当前光标所在行的下方,新建一行,并转为输入模式: I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为

Linux学习笔记(九)--命令学习(文件与目录查看)

Linux文件与目录查看 注:以下的命令均来自网络,如有侵犯版权或者别的问题,请联系本人做适当的处理,非常感谢... cd pwd ls cat tac more less head tail 命令练习:     命令 cd(Change Directory的缩写) 语法 变换目录 扩展 相对路径:是从 .或者..开始的路径.(.表示当前目录 ..表示当前目录的上一级目录) 绝对路径:要有完整的路径,从要目录一直列举到所在目录(从 / 开始的一定是绝对路径). 参数 .   代表此层目录 .. 

Linux学习笔记(九)set_uid、set_gid、stick_bit、软链接文件、硬连接文件

一. 特殊权限set_uid 只能作用于二进制可执行文件,可以使用户暂时拥有文件所有者的权限例如:普通没有root权限,但是修改密码的命令passwd又需要root权限,所以,passwd命令被赋予set_uid权限,使普通用户修改密码时可以暂时获取root权限去修改密码: 用法为 chmod u+s /usr/bin/passwd 二. 特殊权限set_gid 与set_uid用法类似作用于文件时,可以使用户暂时拥有文件所属组的权限,作用于文件夹时,在文件夹内新建文件或者文件夹时,新建文件或文

Linux学习笔记十:软件包管理

在Linux的众多版本中,可以大致分成两个系列,分别是:RedHat系Linux,Debian系Linux.在这两种不同系的Linux中,软件包的管理也是有着一定的区别,但他们的原理都大致相同.这篇笔记将以RedHat系Linux为重点讲解其软件包的管理,并简单介绍Debian系Linux软件包的管理.其大致的结构如下: · RedHat系Linux软件包管理 - 1. 二进制包管理(基于rpm) - 2. 二进制包管理(基于yum) - 3. 源代码包管理 - 4. 脚本安装 · Debian

Linux学习笔记十:Linux用户管理

本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd  /etc/shadow) 2.组配置文件(/etc/group  /etc/gshadow) 3.用户缺省配置文件(/etc/login.defs  /etc/default/useradd) 4./etc/motd文件./etc/issue文件 5.SetUID权限.SetGID权限.黏着位 6.典型案例之一:手动创建一个用户 7.典型案例之二:批量添加用户 8.典型案例之三:限制用户使用su 9.典型

linux学习笔记——文件属性、文件权限及更改命令

#########################################################################################第六单元#########################################################################################################1.文件属性查看ls  -l  filename-         rw-rw-r--        

Android学习笔记十九.使用ContentProvider实现数据共享(一)

一.Android如何实现数据共享?  为了在应用程序之间交换数据,Android提供了ContentProvider,ContentProvider是不同应用程序之间进行数据交换的标准API,当一个应用程序需要把自己的数据暴露给其他程序使用时,该应用程序就可通过提供ContentProvider来实现,其他的应用程序就可以通过ContentResolver来操作ContentProvider暴露的数据.一旦某个应用程序通过ContentProvider暴露了自己的数据操作接口,那么不管该应用程