|
tid=26349&Linux 各種壓縮與解壓縮指令:
% Z F6 }* e" ~5 G$ U.tar3 H- } [& F% I( ~* S% y
.gz
4 P$ j7 ~2 ]6 l; ^7 g3 U' L.tar.gz
& L7 V" V( m2 l& A6 u* R7 J排除不想壓縮的目錄或檔案: 例如5 M" Q+ Y) C& w L- c* B
要備份的目錄是 aaa
2 }9 [- t" N8 D- g9 }( z; A, v- v 不想要備份的是 aaa 裡面的 bbb 子目錄
) t9 e' J1 e6 R9 Y" o tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa* D; U% b% J8 d
壓縮不包含路徑資訊(絕對路徑): 例如" E0 Q R! s4 W! v& H6 z" T
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /. [# m- ]$ U8 o. x7 j! N
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑) f4 k8 q9 d5 I
# tar -ztvf tmp.tar.gz
0 [ A8 H+ Y! N& M; J0 }% N drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
' |# g( E1 V, L5 R; X2 o7 v -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt0 h! o: S. A' p/ F
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt' D7 h9 v9 Q" c* N" G
# tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑* c! [4 B' x" z% F4 e
# tar -ztvf tmp.tar.gz B0 t3 s; ]7 X9 e
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./) D& R$ c+ g! f! F
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
. [$ Z4 N5 i7 {2 k3 z -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
5 r: V# K- r3 y; R 目前工作目錄在 /home/user1
, b6 E7 O: P* ]- O9 V y' k # tar -zcvf tmp.tar.gz tmp
( o6 W; h7 _( O # tar -ztvf tmp.tar.gz6 i) Z& I% R) T% ~8 Q# d
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
& i5 D e0 Y: V6 m -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt" r' E# v3 Q3 \# F& Y) C
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
, W# }" T: D1 x% w5 m # tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
6 K8 t2 M2 l) ^2 f$ M X, G # tar -ztvf tmp.tar.gz
' |1 U; {% U' g3 X9 J drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
9 ?% x2 d) {6 [5 o7 C' C -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
6 h2 ]6 r0 Z; k! f! p4 b" r5 g -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
# C. T e; d; b9 T5 W$ K) m% D- o2 O解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user11 v5 s/ c# @' p/ K" s" O
# tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
# M& p: {( U& A: ` # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
) {$ H! e( D3 U. f 如果工作目錄在/home 以外的位置就要使用絕對路徑& I" I6 h! O' z" ~- W) e
.bz' q+ Y O+ e, {# _" I. H6 \! q
.tar.bz C( p6 L) A8 x& T, G
.bz2' Q6 L/ @* Q s
.tar.bz2& l# G7 O2 ~& F! R0 M+ l* |$ Y
.xz
M3 A: t2 W# k. M4 L8 Z.tar.xz: m1 E$ s0 w, Y5 Q: U& C. c+ r
.Z
# I& D( E2 ]4 r; k R9 l4 H.tar.Z
1 D4 J w, h# b5 N! F) d7 P/ z.tgz3 ]: U/ F4 _0 m" e- v. D
.tar.tgz
7 W! O# a" g; Q. ?% g, y' U.7z
9 q2 n) G: V3 n9 d4 T.zip6 O' L A9 ~" _: Y
.rar
$ j# Y# f) @9 J8 J% T.lha
) S) A+ ^- \8 f @" T1 ] Z. e5 ^+ h+ _$ c7 h
split : 大檔分割成小檔例如:* z9 T8 F4 U" F( d- @& n
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令
$ v% E; Q' T. y osplit -b 50m file.tar.gz (m 可以改成G(giga))) l+ i. b$ A. a8 G
若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:; h" F+ T _3 C( i5 A( r' I
cat xaa xab xac xad xae xaf > file.tar.gz1 [; `4 x9 K+ r; @- ~ `. P
0 ]/ Y# H& u' Y/ s, h- O" v' k
, J! a& W2 R" q, |7 E: n5 \參考自 : . F0 i# p E$ b1 z* f/ K6 d0 O. Z
http://note.drx.tw/2008/04/command.html
: t5 V- h3 Y; n3 A |/ k' D( l0 E
P( C- q2 B8 g% F2 r) I
! j, u: o& u+ Z! n3 C
- C s" l& i- G9 K% f6 m% c0 w! B4 G+ I" a# N$ L3 M
* ?5 _* H. c/ q& J' e
% v% [! H) Z! `/ Q
0 |4 o3 l- v7 M9 k4 |
5 R0 W. P4 ]( B2 z& S. h
$ R; }" S4 y; ^ Q+ i1 x8 f |
|