`
tiankefeng0520
  • 浏览: 147254 次
  • 性别: 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
分享到:
评论

相关推荐

    aarch64-linux-android-4.9

    **压缩包子文件的文件名称列表:aarch64-linux-android-4.9** 在压缩包中,“aarch64-linux-android-4.9”很可能包含了以下关键组件: 1. **头文件(Header Files)**:提供C和C++的API接口定义,让开发者知道如何...

    p6880880_190000_Linux-x86-64.zip

    2. 解压文件:在Linux服务器上,使用解压缩命令如`unzip`解压下载的文件。 3. 准备环境:确保服务器满足补丁的系统要求,如内存、磁盘空间和权限等。 4. 运行OPatch:进入解压后的目录,运行OPatch工具,指定补丁ID...

    linux学习笔记-2

    ### Linux学习笔记精要 #### 一、Linux操作系统概述与常用命令 - **Shell与GUI**: Linux系统提供了两种主要的用户交互方式,图形用户界面(GUI)如Gnome和命令行界面(CLI)如Bash。GUI适合初学者,而CLI对于高效地...

    p31537677_112040_Linux-x86-64.zip

    对于Linux-x86-64平台,这可能涉及到使用特定的命令行工具,如unzip,来解压缩文件,并通过OPatch(Oracle的补丁应用工具)来应用补丁。在执行这些步骤之前,系统管理员应确保已经备份了所有重要数据,并在非生产...

    util-linux-ng-2.14.1-bin和dep.zip

    "dep"通常指的是依赖,这可能是一个包含了所有或部分项目运行所必需的库和框架的压缩文件。解压"dep.zip"后,开发者可以将这些依赖安装到其本地环境中,确保所有开发者的环境一致,从而避免“我的代码在本地工作,但...

    p6880880_122010_Linux-x86-64.zip

    1. **解压补丁包**:首先,你需要将"p6880880_122010_Linux-x86-64.zip"文件解压缩到一个合适的目录,通常是在Oracle软件安装目录下的`OPatch`子目录。 2. **运行OPatch**:进入解压缩后的目录,通过执行`opatch ...

    eclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz

    要安装这个Eclipse版本,用户首先需要解压缩“eclipse-java-oxygen-1a-linux-gtk-x86_64.tar.gz”文件,通常可以使用Linux终端的“tar -zxvf 文件名”命令。解压后,会得到一个Eclipse目录,然后可以将这个目录移动...

    p6880880_112000_Linux-x86-64.zip

    5. 完成后,OPatch会生成一个名为`opatch_output_<日期>.log`的日志文件,记录了整个安装过程的详细信息。务必保存此日志以备后续排查问题。 6. 重新启动Oracle服务,以使新补丁生效。 在安装补丁后,可以通过...

    ddns-go-5.0.3-linux-x86-64.tar

    Linux是操作系统,动态解析DNS是其主要功能,意味着它可以被安装在任何Linux环境中,帮助用户管理他们的动态IP和DNS记录。 在压缩包文件名称列表中,我们可以看到以下三个文件: 1. `ddns-go`:这是主要的可执行...

    p6880880_112000_Linux-x86-64.rar

    标题中的“p6880880_112000_Linux-x86-64.rar”可能是一个包含补丁文件的压缩包,其中“p6880880”可能是Oracle补丁ID,“112000”可能代表补丁的发布序列号,而“Linux-x86-64”则表明该补丁是为64位的Linux操作...

    学习Linux---不得不知的Linux命令

    ### 学习Linux---不得不知的Linux命令 在Linux操作系统中,掌握一系列基本且重要的命令是每个用户必备的技能之一。这些命令可以帮助我们更高效地管理服务器、进行日常操作及故障排查等工作。以下是对给定内容中列出...

    Linux实验十一 arm-Linux交叉编译环境搭建

    首先,需要将包含交叉编译器的压缩文件`arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz`从光盘复制到Fedora9系统中的某个目录下,例如`/tmp/`目录。接下来,进入该目录并执行解压命令: ```bash # cd /tmp # tar xvzf ...

    p6880880_112000_Linux-x86-64.zip11.2.0.3.10

    4. 完成安装后,OPatch会生成日志文件,记录整个过程,供后续排查问题使用。 5. 验证补丁是否成功安装,并确认系统运行正常。 总的来说,这个压缩包提供了一个关键的Oracle数据库更新,旨在提高11.2.0.3版本在Linux...

    p19791364_112040_Linux-x86-64.zip

    标题中的“p19791364_112040_Linux-x86-64.zip”指的是Oracle公司的一个特定补丁程序,适用于Linux操作系统x86-64架构。这个补丁编号“19791364”是Oracle为其软件发布的唯一识别符,用于追踪和应用修复特定问题或...

    p27338049_112040_Linux-x86-64.zip

    3. **下载和准备**:将补丁文件下载到一个安全的位置,然后解压缩,准备应用到系统中。 4. **应用补丁**:根据Oracle提供的文档,使用`opatch`工具或其他指定的方法来应用补丁。 5. **验证**:安装补丁后,执行...

    linux-0.11-040327-rh9.diff.gz

    5. **gzip压缩**:最后的“.gz”表示文件经过gzip压缩,这是一种广泛使用的文件压缩工具,可以减小文件大小,方便传输和存储。在Linux中,可以使用`gunzip`命令来解压此类文件。 6. **应用补丁**:在Linux环境中,...

    LINUX文件权限理解

    此外,所有的组群名称及相关信息记录在 `/etc/group` 文件中。 - **拥有者**:指的是创建文件的用户。 - **组群(Group)**:指与文件创建者同属一组的用户集合。 - **其他(Other)**:指不属于文件拥有者也不属于同...

    uaexpert-bin-linux-x86-64-1.7.1-540.tar.gz

    压缩包子文件的文件名称列表中包含"uaexpert-bin-linux-x86_64-1.7.1-540.AppImage",这是实际可执行的AppImage文件,用户只需双击即可运行。"CHANGELOG.txt"则记录了软件的变更日志,通常包括每次版本更新的详细...

    jdk-8u261-linux-arm32-vfp-hflt.tar.gz

    "tar.gz"后缀表明这是一个使用tar工具打包并使用gzip压缩的文件,这是Linux系统中常见的归档和压缩格式。 描述中提到的“jdk8版本中的Linux ARM 32 Hard Float ABI”, Hard Float ABI是为了在ARM处理器上实现高效...

Global site tag (gtag.js) - Google Analytics