本篇笔记来自《鸟哥的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不会主动的创建文件名