博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习记录--文件压缩
阅读量:4212 次
发布时间:2019-05-26

本文共 3103 字,大约阅读时间需要 10 分钟。

文件压缩

 

机器语言与程序语言

对于机器来说只能识别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.gz179     /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

转载地址:http://xbumi.baihongyu.com/

你可能感兴趣的文章
【一天一道LeetCode】#59. Spiral Matrix II
查看>>
【一天一道LeetCode】#30. Substring with Concatenation of All Words
查看>>
【一天一道LeetCode】#60. Permutation Sequence.
查看>>
【一天一道LeetCode】#113. Path Sum II
查看>>
【一天一道LeetCode】#114. Flatten Binary Tree to Linked List
查看>>
【unix网络编程第三版】阅读笔记(二):套接字编程简介
查看>>
【一天一道LeetCode】#115. Distinct Subsequences
查看>>
【一天一道LeetCode】#116. Populating Next Right Pointers in Each Node
查看>>
【一天一道LeetCode】#117. Populating Next Right Pointers in Each Node II
查看>>
【一天一道LeetCode】#118. Pascal's Triangle
查看>>
同步与异步的区别
查看>>
IT行业--简历模板及就业秘籍
查看>>
JNI简介及实例
查看>>
JAVA实现文件树
查看>>
linux -8 Linux磁盘与文件系统的管理
查看>>
linux 9 -文件系统的压缩与打包 -dump
查看>>
PHP在变量前面加&是什么意思?
查看>>
ebay api - GetUserDisputes 函数
查看>>
ebay api GetMyMessages 函数
查看>>
php加速器 - zendopcache
查看>>