Linux文件与文件系统的压缩、打包

本篇笔记来自《鸟哥的Linux私房菜 基础篇》

一、Linux系统常见的压缩指令

Linux 支持的压缩指令非常多,且不同的指令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件啰。所以,当你下载到某个压缩文件时,自然就需要知道该文件是由哪种压缩指令所制作出来的,好用来对照着解压缩啊。

常见的压缩文件扩展名
*.Z compress 程序压缩的文件; 
*.zip zip 程序压缩的文件; 
*.gz gzip 程序压缩的文件; 
*.bz2 bzip2 程序压缩的文件; 
*.xz xz 程序压缩的文件; 
*.tar tar 程序打包的数据,并没有压缩过; 
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩 
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩 
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩

1、gzip, zcat/zmore/zless/zgrep

gzip 可以说是应用度最广的压缩指令了!目前 gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件。至于gzip所创建的压缩文件为 *.gz 的文件名喔!让我们来看看这个指令的语法吧:

[dmtsai@study ~]$ gzip [-cdtv#] 文件名 
[dmtsai@study ~]$ zcat 文件名.gz 
选项与参数: 
-c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理; 
-d :解压缩的参数;(注意!) 
-t :可以用来检验一个压缩文件的一致性~看看文件有无错误; 
-v :可以显示出原文件/压缩文件的压缩比等信息; 
-# :# 为数字的意思,代表压缩等级,-1最快,但是压缩比最差、-9最慢,但是压缩比最好!默认是 -6

当你使用 gzip 进行压缩时,在默认的状态下原本的文件会被压缩成为 .gz 的文件名,原始文件就不再存在了。

zcat/zmore/zless可以读取压缩后的文件
zgrep 可以搜索关键字,不需要解压缩

2、bzip2, bzcat/bzmore/bzless/bzgrep

bzip2 是为了取代 gzip 并提供更佳的压缩比,用法与gzip几乎相同。

[dmtsai@study ~]$ bzip2 [-cdkzv#] 文件名 
[dmtsai@study ~]$ bzcat 文件名.bz2 
选项与参数: 
-c :将压缩的过程产生的数据输出到屏幕上! 
-d :解压缩的参数 
-k :保留原始文件,而不会删除原始的文件喔! 
-z :压缩的参数 (默认值,可以不加) 
-v :可以显示出原文件/压缩文件的压缩比等信息; 
-# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

bzip2与gzip比,只是扩展名由 .gz 变成 .bz2 而已,对于大容量文件来说,bzip2 压缩时间会花比较久。

3、xz, xzcat/xzmore/xzless/xzgrep

[dmtsai@study ~]$ xz [-dtlkc#] 文件名 
[dmtsai@study ~]$ xcat 文件名.xz 
选项与参数: 
-d :就是解压缩啊! 
-t :测试压缩文件的完整性,看有没有错误 
-l :列出压缩文件的相关信息 
-k :保留原本的文件不删除~ 
-c :同样的,就是将数据由屏幕上输出的意思! 
-# :同样的,也有较佳的压缩比的意思!

xz比bzip2压缩比更高,但是压缩时间更久。

二、打包指令 tar

  • 前一小节谈到的指令大多仅能针对单一文件来进行压缩,虽然 gzip, bzip2, xz 也能够针对目录 来进行压缩,不过,这两个指令对目录的压缩指的是“将目录内的所有文件 “分别” 进行压缩的动作!
  • tar 可以将多个目录或文件打包成一个大文件,同时还可以通过 gzip/bzip2/xz 的支持,将该文件同时进行压缩!

1、tar

[dmtsai@study ~]$ tar [-z;-j;-J] [cv] [-f 待创建的新文件名] filename... ==打包与压缩
[dmtsai@study ~]$ tar [-z;-j;-J] [tv] [-f 既有的 tar文件名] ==察看文件名 
[dmtsai@study ~]$ tar [-z;-j;-J] [xv] [-f 既有的 tar文件名] [-C 目录]==解压缩 
选项与参数: 
-c :创建打包文件,可搭配 
-v 来察看过程中被打包的文件名(filename) 
-t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了; 
-x :解打包或解压缩的功能,可以搭配 
-C (大写) 在特定目录解开 
    特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。 
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz 
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2 
-J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz 
    特别留意, -z, -j, -J 不可以同时出现在一串命令行中 
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来! 
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!(比较不会忘记) 
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 

其他后续练习会使用到的选项介绍: 
-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件 
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意; 
--exclude=FILE:在压缩的过程中

压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

filename.tar.bz2就是自己取的文件名,tar不会主动的创建文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值