`
tiankefeng0520
  • 浏览: 143094 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Linux学习记录--文件压缩

阅读更多

文件压缩

 

机器语言与程序语言

对于机器来说只能识别0,1,我们如果让机器运行必须输入机器能够识别的语言,可是机器语言不利于人们使用可理解,因此科学家就开发出人类能看的懂的程序语言,然后再创造出“编译器”将程序语言转换为机器语言。

 

压缩的简单原理

我们都知道1byte=8bit. 比如,对于这1这个数字来说可以表示为0000 0001,前7个bit都是“空的”只有最后一个bit,有实际意义。压缩的原理就是通过复杂的计算方式将这个“空的“内容尽可能的去掉以减少文件的存储空间

 

常见压缩|打包命令

Linux常见的压缩命令式gzip,bzip2,这些压缩命令都是针对于一个文件进行压缩,因此当要压缩很多文件时,就需要先进行打包(tar)然后再进行压缩。

 

*.Z :compress 程序压缩的文件

*.gz:gzip程序压缩的文件

*.bz2:bzip2程序压缩的文件

*.tar:打包文件,并未进行压缩

*.tar.gz:打包文件并以gzip程序压缩打包文件

*tar.bz2: 打包文件并以bzip2程序压缩打包文件

 

gzip

gzip可以解开compress,zip,gzip等软件压缩的文件

 

语法:gzip[cdtv#] 文件名

选项与参数:

-c: 将压缩数据输出到屏幕上

-d:解压缩

-t:可以检验一个压缩文件的一致性,看文件有无错误

-v:显示源文件/压缩文件的压缩比等信息

-#:压缩等级,-1最快,-9最慢,默认值时-6

 

举例1:压缩文件

 

[root@bogon ~]# cp /etc/man.config /tmp/man.config
[root@bogon ~]# gzip -v /tmp/man.config 
/tmp/man.config:         56.1% -- replaced with /tmp/man.config.gz
[root@bogon ~]# ll /etc/man.config /tmp/man.config.gz 
-rw-r--r-- 1 root root 4617 2012-05-30 /etc/man.config
-rw-r--r-- 1 root root 2057 02-27 22:26 /tmp/man.config.gz

 

 

举例2:解压缩

[root@bogon ~]# gzip -d /tmp/man.config.gz 
[root@bogon ~]# ll  /tmp/man.config 
-rw-r--r-- 1 root root 4617 02-27 22:26 /tmp/man.config

 

举例3:数据流重定向(压缩后保留原来文件)

[root@bogon ~]# gzip -c /tmp/man.config > /tmp/man.config.gz 
[root@bogon ~]# ll /tmp/man.config /tmp/man.config.gz
-rw-r--r-- 1 root root 4617 02-27 22:26 /tmp/man.config
-rw-r--r-- 1 root root 2057 02-27 22:31 /tmp/man.config.gz

 

可以zcat来读取由gzip压缩的文件

[root@bogon ~]# zcat /tmp/man.config.gz

 

bzip2

bzip2的压缩比比gzip还要好

 

语法:bzip2[-cdkzv#] 文件名

选项与参数:

-c:将压缩数据输出到屏幕上

-d:解压缩

-k:保留原始文件

-z:压缩

-v:显示源文件/压缩文件的压缩比等信息

-#:压缩等级,-1最快,-9最慢

 

可以bzcat来读取由bzip2压缩的文件

 

tar

语法:

打包与压缩:tar [-j|-z] [-cv] [-f 新建的文件名] filename

查看文件名:tar [-j|-z] [-tv] [-f 新建的文件名]

解压缩:tar [-j|-z] [-xv] [-f 新建的文件名] [-C 目录]

选项与参数:

-c:新建打包文件

-t:查看打包文件内容

-x:加压缩打包文件

 

-j:使用bzip2进行压缩/解压缩

-z:使用该gzip进行压缩/解压缩

 

-v:在压缩过程中,将正在处理的文件名显示出来

-f filename:需要被压缩成(解压缩)的文件名

-C:解压缩到的目录

 

-p:保留备份数据的原有权限和属性

-P:保留绝对路径

--exclude=File:在压缩中不将FILE打包

--newer-mtime=”时间”:打包比指定时间新的文件

 

举例1:对文件打包压缩

[root@localhost ~]# tar -jcv -f /root/etc.tar.bz2 /etc
……压缩文件信息
[root@localhost ~]# tar -zcv -f /root/etc.tar.gz /etc
……压缩文件信息
[root@localhost ~]# ll --block-size=M /root/etc.tar.bz2 /root/etc.tar.gz ;du -sm /etc
-rw-r--r-- 1 root root 10M 02-28 10:42 /root/etc.tar.bz2
-rw-r--r-- 1 root root 16M 02-28 10:43 /root/etc.tar.gz
179     /etc

 

可以看到压缩后,文件小了很多

 

举例2:查看打包压缩文件内容

[root@localhost ~]# tar -ztv -f /root/etc.tar.gz |grep 'shadow*'
-r-------- root/root      1352 2014-02-14 10:36:09 etc/shadow
-r-------- root/root       657 2014-02-14 10:36:09 etc/gshadow
-r-------- root/root       648 2014-02-14 10:36:09 etc/gshadow-
-r-------- root/root      1352 2014-02-14 10:36:09 etc/shadow-

 

举例3:解压缩

[root@localhost ~]# tar -jxv -f /root/etc.tar.bz2 -C /tmp
……解压缩文件信息
[root@localhost ~]# ll -d /tmp/etc/
drwxr-xr-x 114 root root 12288 02-28 10:15 /tmp/etc/

 

当不使用绝对路径压缩时,解压后则解压到指定路径下,如压缩文件/etc,解压后直接放在了/tmp/etc

使用绝对路径压缩,则在解压缩后可以使用文件的绝对路径解压缩到文件的原来目录

 

举例4:打包目录,但排除一些文件

[root@localhost ~]# tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tae.bz2 /root /etc
……压缩文件信息
[root@localhost ~]# ll /root/system.tar.bz2 
-rw-r--r-- 1 root root 10531659 02-28 11:19 /root/system.tar.bz2



0
0
分享到:
评论

相关推荐

    linux解压缩命令-Linux命令转发记录

    Linux系统中提供了多种解压缩命令,用于处理不同类型的压缩文件。以下是一些常用的Linux解压缩命令的简介: tar: tar 是Linux中最常用的打包工具,它本身不具有压缩功能,但可以调用其他压缩工具(如gzip、bzip2...

    RH033Linux基础笔记九-文件系统和TAR的打包压缩介绍.pdf

    RH033Linux基础笔记九-文件系统和TAR的打包压缩介绍.pdf

    尚硅谷Linux学习笔记(不包含shell)超级详细版

    另外Typora的软件安装包也在压缩文件里,推荐大家使用这个编辑器做笔记。网上看到了别的网友分享的其他资源的学习笔记,下载下来看了之后感觉还有可以优化的地方,之后也会把其他的笔记整理好上传下来,不过最重要的...

    Linux相关资料

    LINUX学习笔记--FTP服务器设置 Linux中文件查找技术大全 Linux中文件的压缩与解压缩 将Linux配置为代理防火墙用途 教你十种提高Linux系统安全性的招数 解析Linux操作系统文件目录 免费的Linux...

    Linux学习笔记.xmind

    Linux学习笔记一.服务器注意事项 1.远程服务器不允许关机,只能重启 2.重启前应该关闭服务(例如生产服务,次之网络服务) 3.不要在服务器访问高峰运和地高负载命令(例解,压缩大文件,大量IO操作,如整盘扫描,...

    rarlinux-5.8(Linux下rar压缩和解压软件,32&64;位)

    f 刷新档案中的文件(更新这些文件自它们被打包之后产生的变化,不在压缩档案中增加新的) i[par]= 在档案中查找特定字符 k 锁定档案(任何试图改变压缩档案中内容的命令都会被忽略) l[t,b] 列出档案[technical, b...

    linux学习记录

    linux 相关学习记录: ls -l 获得当前目录下的所有文件 2、cd 获得指定文件目录位置 3、pwd 获得当前目录位置 4、touch 在指定目录下生成一个空文件 5、cp 将某个文件复制到目标文件 mv 改变文件名或移动文件 rm ...

    Linux基础命令学习——文件打包压缩和搜索命令(四)

    今天来写一篇关于学习Linux基础命令——文件打包压缩和搜索命令的博文,也实践了很多,总结给大家一起学习! 一、tar命令 用于对文件进行打包压缩或解压;格式:tar [选项] 档案文件 文件列表 -c:生成档案文件 -v:...

    Linux简明教程.rar

    五、压缩和归档文件--------------------------------------------------------------------------------- 1.压缩文件 2.解压缩文件 3.其他压缩方法 4.打包和解包文件 六、定位命令---------------------------...

    RHCE课程笔记

    RHCE课程-RH033Linux基础笔记九-文件系统和TAR的打包压缩介绍 12月7日课程 第二部分 RH131 1、RPM及其管理,YUM客户端及服务器的配置 RHCE课程-RH131Linux管理笔记一-RPM及其管理,YUM客户端及服务器的配置 12月...

    Linux学习笔记详细版,高效实用

    这份Linux学习笔记包括Ubuntu虚拟机安装、虚拟机环境配置、Liunx文件管理、压缩解压缩,适合新手消化使用,高效实用。

    Linux运维学习笔记一

    Linux 和Windows不同,Linux严格区分大小写的,包括文件名和目录名、命令、命令选项、配置文件设置选项等。 例如,Win7 系统桌面上有文件夹叫做Test,当我们在桌面上再新建一个名为 test 的文件夹时,系统会提示...

    Linux.html

    Linux 操作系统 1. Linux操作系统认知 1.1 操作系统(Operation System简称OS) 1.2 Linux系统介绍 1.3 文件系统 1.4 Ubuntu使用 2. Linux常用命令 2.1 终端与命令行 2.2 Linux常用命令 2.2.1 ...

    winrarLinux版解压缩工具v5.60官方免费版

    WINRAR是一款流行好用的压缩工具,支持鼠标拖放及外壳扩展,完美支持 ZIP 档案,内置程序可以解开 CAB、ARJ、LZH、TAR、GZ、ACE、UUE、BZ2、JAR、ISO 等多种类型的压缩文件;具有估计压缩功能,你可以在压缩文件之前...

    学习笔记(边缘检测_OpenCV在Zedboard上的移植).docx

    新建安装目录/home/esion/zed,将opencv-2.4.10.zip复制到zed文件夹中并解压缩,这样在zed目录下就有opencv-2.4.10文件夹,在此文件夹中新建一个build和install文件夹。 2、 配置安装链 在opencv-2.4.10文件夹中新建...

    Linux学习笔记(强悍总结值得一看)

    Linux学习笔记(强悍总结值得一看) 内容非常全面,值得收藏 内容简介: 1、常用命令 2、磁盘管理 3、用户管理 4、文件权限 5、目录结构 6、软件安装 7、时间管理 8、启动引导 9、运行级别 10、进程管理 11、资源...

    Linux常用命令超详细学习笔记.rar

    tar:打包和压缩文件。 wget:从网络下载文件。 ssh:通过安全的Shell连接到远程服务器。 top:显示系统中运行的进程和系统资源的使用情况。 ps:显示当前用户的进程状态。 kill:终止正在运行的进程。 ifconfig:...

    Linux下解压.tar.xz格式文件的方法

    查了一下资料,这里进行一下记录,分享出来供大家参考学习,下面来看看详细的记录吧。 创建xz压缩文件 xz -z 待压缩文件名 -k 保留原文件; -0至-9调节压缩率。如果不设置,默认压缩等级是6; 解压xz压缩文件 xz ...

    学习笔记(OpenCV在PC Ubuntu上的安装).docx

    边缘检测_OpenCV在Zedboard上的移植 ...cp /home/z/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /home/esion/zed/opencv-2.4.10/install/lib

Global site tag (gtag.js) - Google Analytics