Linux 压缩与打包

一. linux压缩后缀解释说明

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

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

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

*.tar       tar 程序打包的数据,并没有压缩过;

*.tar.gz    tar 程序打包的文件,其中并且经过 gzip 的压缩

*.tar.bz2   tar 程序打包的文件,其中并且经过 bzip2 的压缩

二. gzip, zcat

[[email protected] ~]# gzip [-cdtv#] 档名

[[email protected] ~]# zcat 档名.gz

选项与参数:

-c  :将压缩的数据输出到萤幕上,可透过数据流重导向来处理;

-d  :解压缩的参数;

-t  :可以用来检验一个压缩档的一致性~看看文件有无错误;

-v  :可以显示出原文件/压缩文件的压缩比等资讯;

-#  :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6

范例一:将 /etc/man.config 复制到 /tmp ,并且以 gzip 压缩

[[email protected] ~]# cd /tmp 

[[email protected] tmp]# cp /etc/man.config .

[[email protected] tmp]# gzip -v man.config

man.config:      56.1% -- replaced with man.config.gz

[[email protected] tmp]# ll /etc/man.config /tmp/man*

-rw-r--r-- 1 root root 4617 Jan  6  2007 /etc/man.config

-rw-r--r-- 1 root root 2684 Nov 10 17:24 /tmp/man.config.back.Z

-rw-r--r-- 1 root root 2057 Nov 10 17:14 /tmp/man.config.gz  <==gzip压缩比较佳

范例二:由於 man.config 是文字档,请将范例一的压缩档的内容读出来!

[[email protected] tmp]# zcat man.config.gz

# 由於 man.config 这个原本的文件是是文字档,因此我们可以尝试使用 zcat  去读取!

# 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!

范例三:将范例一的文件解压缩

[[email protected] tmp]# gzip -d man.config.gz

# 不要使用 gunzip 这个命令,不好背!使用 gzip -d 来进行解压缩!

# 与 gzip 相反, gzip -d 会将原本的 .gz 删除,产生原本的 man.config 文件。

范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件

[[email protected] tmp]# gzip -9 -c man.config > man.config.gz

gzip压缩范例

三. bzip2,bzcat

[[email protected] ~]# bzip2 [-cdkzv#] 档名

[[email protected] ~]# bzcat 档名.bz2

选项与参数:

-c  :将压缩的过程产生的数据输出到萤幕上!

-d  :解压缩的参数

-k  :保留原始文件,而不会删除原始的文件喔!

-z  :压缩的参数

-v  :可以显示出原文件/压缩文件的压缩比等资讯;

-#  :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

范例一:将刚刚的 /tmp/man.config 以 bzip2 压缩

[[email protected] tmp]# bzip2 -z man.config 

# 此时 man.config 会变成 man.config.bz2 !

范例二:将范例一的文件内容读出来!

[[email protected] tmp]# bzcat man.config.bz2

# 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!

范例三:将范例一的文件解压缩

[[email protected] tmp]# bzip2 -d man.config.bz2

范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件

[[email protected] tmp]# bzip2 -9 -c man.config > man.config.bz2

bzip2范例

四. 打包命令

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

[[email protected] ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩

[[email protected] ~]# tar [-j|-z] [tv] [-f 创建的档名]             <==察看档名

[[email protected] ~]# tar [-j|-z] [xv] [-f 创建的档名] [-C 目录]   <==解压缩

选项与参数:

-c  :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)

-t  :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;

-x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开

      特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。

-j  :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2

-z  :透过 gzip  的支持进行压缩/解压缩:此时档名最好为 *.tar.gz

-v  :在压缩/解压缩的过程中,将正在处理的档名显示出来!

-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!

-C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

其他后续练习会使用到的选项介绍:

-p  :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档

-P  :保留绝对路径,亦即允许备份数据中含有根目录存在之意;

--exclude=FILE:在压缩的过程中,不要将 FILE 打包! 

tar参数详解

[[email protected] ~]# tar -zpcv -f /root/etc.tar.gz /etc

tar: Removing leading `/‘ from member names  <==注意这个警告信息

/etc/

....中间省略....

/etc/esd.conf

/etc/crontab

# 由於加上 -v 这个选项,因此正在作用中的档名就会显示在萤幕上。

# 如果你可以翻到第一页,会发现出现上面的错误信息!底下会讲解。

# 至於 -p 的选项,重点在於『保留原本文件的权限与属性』之意。

[[email protected] ~]# tar -jpcv -f /root/etc.tar.bz2 /etc

# 显示的信息会跟上面一模一样罗!

[[email protected] ~]# ll /root/etc*

-rw-r--r-- 1 root root  8740252 Nov 15 23:07 /root/etc.tar.bz2

-rw-r--r-- 1 root root 13010999 Nov 15 23:01 /root/etc.tar.gz

[[email protected] ~]# du -sm /etc

118     /etc

# 为什么建议您使用 -j 这个选项?从上面的数值你可以知道了吧?^_^

tar压缩范例

[[email protected] ~]# tar -jtv -f /root/etc.tar.bz2

....前面省略....

-rw-r--r-- root/root  1016 2008-05-25 14:06:20 etc/dbus-1/session.conf

-rw-r--r-- root/root   153 2007-01-07 19:20:54 etc/esd.conf

-rw-r--r-- root/root   255 2007-01-06 21:13:33 etc/crontab

范例:将档名中的(根)目录也备份下来,并察看一下备份档的内容档名

[[email protected] ~]# tar -jpPcv -f /root/etc.and.root.tar.bz2 /etc

....中间过程省略....

[[email protected] ~]# tar -jtf /root/etc.and.root.tar.bz2

/etc/dbus-1/session.conf

/etc/esd.conf

/etc/crontab

# 这次查阅档名不含 -v 选项,所以仅有档名而已!没有详细属性/权限等参数。

tar查看范例

#解压在当前目录下
[[email protected] ~]# tar -jxv -f /root/etc.tar.bz2

[[email protected] ~]# ll

....(前面省略)....

drwxr-xr-x 105 root root    12288 Nov 11 04:02 etc

....(后面省略)....

#解压在指定目录下
[[email protected] ~]# tar -jxv -f /root/etc.tar.bz2 -C /tmp

[[email protected] ~]# ll /tmp

....(前面省略)....

drwxr-xr-x 105 root root    12288 Nov 11 04:02 etc

....(后面省略)....

#仅解开单一文件的方法

# 1. 先找到我们要的档名,假设解开 shadow 文件好了:

[[email protected] ~]# tar -jtv -f /root/etc.tar.bz2 | grep ‘shadow‘

-r-------- root/root  1230 2008-09-29 02:21:20 etc/shadow-

-r-------- root/root   622 2008-09-29 02:21:20 etc/gshadow-

-r-------- root/root   636 2008-09-29 02:21:25 etc/gshadow

-r-------- root/root  1257 2008-09-29 02:21:25 etc/shadow  <==这是我们要的!
# 2. 将该文件解开!语法与实际作法如下:

[[email protected] ~]# tar -jxv -f 打包档.tar.bz2 待解开档名

[[email protected] ~]# tar -jxv -f /root/etc.tar.bz2 etc/shadow

etc/shadow

[[email protected] ~]# ll etc

total 8

-r-------- 1 root root 1257 Sep 29 02:21 shadow  <==呦喝!只有一个文件啦!

#打包某目录,但不含该目录下的某些文件之作法
[[email protected] ~]# tar -jcv  -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2  /etc /root

tar解压范例

# 1. 先由 find 找出比 /etc/passwd 还要新的文件

[[email protected] ~]# find /etc -newer /etc/passwd

....(过程省略)....

# 此时会显示出比 /etc/passwd 这个文件的 mtime 还要新的档名,

[[email protected] ~]# ll /etc/passwd

-rw-r--r-- 1 root root 1945 Sep 29 02:21 /etc/passwd

# 2. 好了,那么使用 tar 来进行打包吧!日期为上面看到的 2008/09/29

[[email protected] ~]# tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 \

> --newer-mtime="2008/09/29" /etc/*

....(中间省略)....

/etc/smartd.conf    <==真的有备份的文件

....(中间省略)....

/etc/yum.repos.d/   <==目录都会被记录下来!

tar: /etc/yum.repos.d/CentOS-Base.repo: file is unchanged; not dumped

# 最后行显示的是『没有被备份的』,亦即 not dumped 的意思!

# 3. 显示出文件即可

[[email protected] ~]# tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 | \

> grep -v ‘/$‘ 

# 透过这个命令可以呼叫出 tar.bz2 内的结尾非 / 的档名!就是我们要的啦!

仅备份比某时刻新的范例

#类似于copy的效果:
# 1. 将 /etc 整个目录一边打包一边在 /tmp 解开
[[email protected] ~]# cd /tmp
[[email protected] tmp]# tar -cvf - /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 简单的想法中,你可以将 - 想成是在内存中的一个装置(缓冲区)。

#备份到磁带机:
tar 除了可以将数据打包成为文件之外,还能够将文件打包到某些特别的装置去,举例来说, 磁带机 (tape) 就是一个常见的例子。磁带机由於是一次性读取/写入的装置,因此我们不能够使用类似 cp 等命令来复制的! 那如果想要将 /home, /root, /etc 备份到磁带机 (/dev/st0) 时,就可以使用:『tar -cv -f /dev/st0 /home /root /etc』,很简单容易吧! 磁带机用在备份 (尤其是企业应用) 是很常见的工作喔!

原文地址:https://www.cnblogs.com/wangzengyi/p/12392118.html

时间: 2024-11-12 15:46:27

Linux 压缩与打包的相关文章

linux压缩和打包工具gzip_bzip2_xz_zip_tar

gizp:*gzip工具不能压缩目录,只能压缩文件压缩:gzip filename [[email protected] test01]# ll -h * #查看压缩前all.txt文件大小 -rw-r--r-- 1 root root 4.2M 9月 7 13:44 all.txt [[email protected] test01]# gzip all.txt #压缩all.txt文件 [[email protected] test01]# ll -h * #查看压缩后all.txt文件大小

linux 压缩/解压缩/打包命令

压缩:tar -zcvf  路径+文件名  原始文件路径+文件名 压缩: tar -jcvf 路径+文件名 原始文件路径+文件名 解压缩:tar -zxvf 路径+文件名 解压位置 解压缩:tar -jxvf  路径+文件名 解压位置 命令可选项: 压缩与解压缩 -c  :压缩 -x:解压缩 压缩方式: -z :按照gzip的方式压缩或者解压缩 -j: 按照bzip2的方式压缩或者解压缩 其他选项: -v:过程中显示文件名 -f:制定文件名

【linux相识相知】压缩与打包

我们日常使用window的时候,经常会用到压缩与解压缩,如果要压缩一个文件,右击选择[添加到压缩文件],解压缩则右击选择[解压到当前文件夹],“点点点”就能完成.但是在一个没有装图形化界面的linux操作系统又不能使用“点点点”,那该怎么操作呢?本文就linux中如何使用压缩和打包工具做出解释. 为什么要压缩文件 压缩的目的是为了就是将文件通过压缩算法转变成一个体积更小格式的文件,减小了文件在硬盘上的占用空间,压缩文件的时候,特别的消耗CPU的时钟周期,因为CPU要进行大量的计算,所有压缩也是一

linux——(5)文件与文件系统的压缩与打包

概念一:常见的压缩文件拓展名 .z compress程序压缩的文件. .gz gzip程序压缩的文件. .bz2 bzip2程序压缩的文件. .tar tar程序打包的数据,并没有压缩过. .tar.gz tar程序打包的数据,gzip程序压缩的文件. .tar.bz2 tar程序打包的数据,bzip2程序压缩的文件. 概念二:打包和压缩的区别:linux里的压缩命令大多都是针对一个文件的若是有一堆文件需要压缩,就要一个一个压,这样太麻烦了,所以linux上还有一个打包命令可以把一堆文件打包成一

linux学习笔记——打包、压缩、远程文件传输

############打包.压缩########################## 1.打包 (打包表示把一堆文件变成一个)tar            ##打包工具        -f        ##指定生成包的名字        -c        ##创建包        -v        ##显示创建过程        -t        ##查看包中内容        -x        ##解包        -r        ##追加文件到包中        -C  

Linux压缩打包方法连载之三:bzip2, bzcat 命令

Linux压缩打包方法有多种,本文集中讲解了bzip2, bzcat 命令的使用.案例说明,例如# 与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快. AD: 我们遇见Linux压缩打包方法有很多种,以下讲解了Linux压缩打包方法中的bzip2, bzcat 命令的概念,本文举了多种范例供大家查看,相信大家看完后会有很多收获.... bzip2, bzcat 命令[[email protected] ~]# bzip2 [-cdz] 档名[[email protected]

第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令

Linux 系统常见的压缩命令: 在Linux中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 Linux 支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,彼此之间可能就无法相互压缩/解压缩文件. 所以,当你下载到某个压缩档时,自然就需要知道该文件是由哪种压缩命令所制作出来的,好用来对照著解压缩!虽然 Linux 文件的属性基本上是与档名没有绝对关系的, 但是为了帮助我们人类,所以适当的扩展名还是必要的! *.Z comp

攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令

前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2:bzip2压缩文件 *.tar:tar打包,未压缩 *.tar.gz:tar打包,经过gzip压缩 *.tar.bz2:tar打包,经过bzip2压缩 一般经过打包或者压缩处理的文件通过后缀名来进行区别. 一.compress:该命令比较古老,centos默认未安装,可以使用gzip代替. 二.gz

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

Linux文件与文件系统的压缩与打包 进来在学习Linux了,不过Linux的命令太多了,怕记不住所以使用博客记录的方式来写下自己的学习过程,以后忘记了还可以翻阅自己写下的博客来查查: Linux系统常见的压缩命令 Compress gzip,gcat bzip2,bzcat 打包命令:tar Linux系统常见的压缩命令 Linux的环境下,压缩文件大多扩展名是*.tar, *.tar,*.gz, *.tgz, *.gz, *.Z, *.bz2,下面我们列出常见的压缩文件扩展名: *.Z---