Linux压缩与解压缩参数说明

tar命令: tar [-cxtzjvfpPN] 文件与目录 ....
# f+ E' `# d' W( {
参数: & e( U# Y4 x; c$ b2 O; j/ p
-c :建立一个压缩文件的参数指令(create 的意思);
. E' {. v5 ^  /' v3 O5 H, C' @- p& ^-x :解开一个压缩文件的参数指令! 3 |& u2 z: k( A# ?% c
-t :查看 tarfile 里面的文件!
9 ^; S) v9 H/ w. a/ Z2 s特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
6 x  C5 l, Y( n, w# C( P9 W5 P因为不可能同时压缩与解压缩。
1 _# l: /. w' S8 f* R-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? + ~' `) N! d" d% D7 _
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
0 X- j4 k5 L+ r6 a-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
, v6 q' X2 o" y1 I+ n-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! 9 ^' N) A  y' F  V6 T+ r/ T
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成 * }% l+ z* w; u
   『 tar -zcvPf tfile sfile』才对喔!
$ @# j& H/ b- p; u% r& c9 @$ n4 @# m-p :使用原文件的原来属性(属性不会依据使用者而变)
% U; o1 H, K" P% K5 V-P :可以使用绝对路径来压缩! $ }; K! S: j; t; k
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
. O: Q! M9 u" E4 `3 W--exclude FILE:在压缩的过程中,不要将 FILE 打包! , J- ~5 t0 s% Y+ Z& |1 z. E
范例:

2 I1 ^9 J# B9 A+ t/ Z+ E# o
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
1 i2 f$ O+ l, J
[root@linux ~]#
tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
7 N. K1 F6 B) Y3 @; L4 Z[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以 gzip 压缩 ! W! h6 i( @" o8 ^
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以 bzip2 压缩 ( d- t5 m: k% x& u, F" W0 /# k4 B" r
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 7 r. T* P0 b8 v& p
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
4 q8 V/ ^& ~. [# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
, U3 }$ z9 H( j# 上述指令在执行的时候,会显示一个警告讯息: ( |! h* m* L1 W6 i* s1 Q
# 『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。
1 I6 K+ j& h1 I, M# u8 b
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件? " ?- D. m# k7 W6 |* F) C' a- m
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz & D2 ]8 B; /: S
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时, & q" ~- g7 b5 z9 k8 m- `9 w
# 就得要加上 z 这个参数了!这很重要的!
6 h- s8 D( ~( `: Y2 b
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下 1 e  w( R( M6 r) a7 ]/ b- V
[root@linux ~]# cd /usr/local/src
% ~, K6 T3 s- r; h/ m/ {[root@linux src]# tar -zxvf /tmp/etc.tar.gz
; e& }# }/ // Q2 }# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说, 5 e0 [- s2 b6 `+ |
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz , , d3 ^1 g+ z5 j, p7 L) K$ T7 Z
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc / f1 D7 ]0 w1 `5 v
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

: X% t/ Z- T4 X, w( w  n, J范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已 5 w3 R) L( [1 T+ J& |7 [
[root@linux ~]# cd /tmp
% U3 |! o6 W: Q[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd : Y% g3 o$ b# |& |2 h7 S% c
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
& n5 P; N! r9 O- U# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

% k. M6 Z' {. R. Q6 _$ X范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限! 6 @! H- A. s* v
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc / s! v* t3 A5 P* g  n4 F3 i! E
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
9 ~: {5 B9 a; ^范例六:在 /home 当中,比 2005/06/01 新的文件才备份
4 E. y3 b' b* V/ E* ]( Q! r: m[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home
2 o0 g3 A3 m& M范例七:我要备份 /home, /etc ,但不要 /home/dmtsai 9 W% I# d4 g2 i* p' x' M" @
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc5 B7 a" B# G) A: o- F) ^. _
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件! * j& Q6 F+ |7 n6 R% ?" O
[root@linux ~]# cd /tmp
5 ^( _6 K: O% q[root@linux tmp]# tar -cvf - /etc | tar -xvf - ; g6 Q8 @, N5 F3 r, s( E  j$ c
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的! ) ~; |; c! w% I: ~! s& L
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
  K' w! A0 }$ F  ?, J# 这分别代表 standard output, standard input 与管线命令啦! 2 r0 @+ L/ j* v' ^
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

 

 

如何在Linux下创建与解压zip, tar, tar.gz和tar.bz2文件) G+ T; U0 D$ K' /0 `( S9 i
January 2nd, 2009 at 10:31 pm Linux 解压, Linux, tar, tar.bz2, tar.gz, tgz, zip, 压缩, 打包, 文档 / {# r8 e( P) K, |1 Z
这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压缩格式。
1 C/ q0 [4 d& V' L& A0 r. Q) B7 q! H# w% k: @2 g
在我们探究这些用法之前,我想先跟大家分享一下使用不同压缩格式的经验。当然,我这里讲到的只是其中的一些用法,除我讲到的之外,他们还有更多的地方值得我们探讨。我已经意识到我需要了解两到三种压缩格式,才能更好的使用他们。zip格式是第一个需要了解的格式。因为它实际上已成为压缩文件的标准选择,而且它在windows上也能使用。我经常用zip格式压缩那些需要共享给windows用户的文件。如果只是共享给linux用户或者Mac用户,那我偏向于选择tar.gz格式。% R  e; w4 p; H

  N+ e0 H4 o4 e5 f* gZIP
+ N# |, w2 b7 ]2 E# S0 J: xzip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:5 A" d4 M. x) o7 [, t5 j
我们可以使用下列的命令压缩一个目录:
, v% f- l$ i- W! L' B' }: `7 N6 e7 @" d$ h* i/ [
# zip -r archive_name.zip directory_to_compress: I! T  r8 a% X7 D6 c
下面是如果解压一个zip文档:" L/ _0 N# h% C# @2 G: M
( T! O$ ]2 V: R' c% Y0 F2 {
# unzip archive_name.zip1 e6 u# f# E% B. o: K
TAR3 b5 b6 `! {% Y$ l* V/ O5 y
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
& z4 l/ V$ B8 b( h; a9 Y  l* P
* Z5 I0 o1 ]' A3 C# tar -cvf archive_name.tar directory_to_compress  t0 d. l/ t' u" S# /
如何解包:
8 z1 @- p- {& H6 Q- U$ `. J, F; X6 m
# tar -xvf archive_name.tar.gz- q: k2 X, Z& m: R: e0 e
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:5 M9 H6 g) n9 D9 C* v
/ K2 B0 Q4 N+ V& X
# tar -xvf archive_name.tar -C /tmp/extract_here/
7 r  s7 I* w( `, jTAR.GZ
7 h' P- Q  O7 I5 h& p6 n这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:7 k+ E* i: P3 g+ Z# D1 n

% t# |- C0 c  R( U# tar -zcvf archive_name.tar.gz directory_to_compress
  Z( `4 /- q' r0 /( C( V解压缩:  R) o5 ^. U& N  n. A8 O: Q
, O: N+ ]$ v& z1 K
# tar -zxvf archive_name.tar.gz$ x8 ?* V9 b$ |/ h/ S9 a1 z5 i
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
( I) J% S/ @) /6 C& Y: c; r3 Y! d& ?3 N+ e0 V
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/& /9 l+ `: l, l/ |
TAR.BZ2$ X7 E" e! ~# `1 A0 |9 l9 K
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。
9 Q' J5 I5 E& _" ]9 O  /" I' E- Q& `
5 o4 G3 s6 Z% g8 p5 c9 /# tar -jcvf archive_name.tar.bz2 directory_to_compress
7 S; w) V- G# k2 x上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
% k& F; e# F) E1 R& {, a7 s5 H- L# @! f( M% {
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/) a) G+ /7 j) N6 }# u9 D: A: ~
数据压缩是非常有用的,尤其是对于备份来说。所以,你现在应该考虑在你的备份脚本中使用你在这里学到的压缩方式备份你基本的规则文件以减小你备份文件的大小。/ k6 a* C! F# v
6 d' d  [9 Q2 U( d
过段时间之后,你就会意识到,在压缩率与CPU占用时间上会有一个平衡,你也要学会如何去权衡什么时候你需要一个快但是压缩率低,什么时候需要一个压缩率高但是CPU点用高的压缩方式,然后你才能避免无谓的空间与时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值