|
|
tid=26349&Linux 各種壓縮與解壓縮指令:( l% ]- p) o, C3 N5 P1 o
.tar
$ m3 b1 d! e- T5 g0 Z& R.gz
! K5 d: R" ]+ t3 _3 s! t/ s.tar.gz
7 ]( l; O) W S) h排除不想壓縮的目錄或檔案: 例如5 s: m2 U2 t o$ j, L& B
要備份的目錄是 aaa
% O5 [$ i* o& r6 B: c# E' o: I9 f 不想要備份的是 aaa 裡面的 bbb 子目錄 " M: y. Q& W9 @
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa3 V1 z* I4 P2 P6 W9 p
壓縮不包含路徑資訊(絕對路徑): 例如/ \0 V% c V4 f" T
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /; _2 B3 |* r& x& N& a4 D5 w" R8 ^: z
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑
3 B `' d& M3 ~( {# [: Y # tar -ztvf tmp.tar.gz 2 u: u, E& k: v/ _7 o, W
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
5 I8 k3 B6 G- A+ v; X0 t -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
6 }0 l* T" q: Q) Q+ O& ] -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
! P) R" v Q9 }; i9 y E% u # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
2 \8 K7 R1 [( x5 n1 s1 g # tar -ztvf tmp.tar.gz
4 R l$ }4 k/ {: y9 _) E3 ? drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./, S$ [' T$ Q- g3 a8 [- K; e7 A9 B
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt- v* p2 [ v' ?
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
+ @$ _& m5 Z, S4 X& D7 ]4 v 目前工作目錄在 /home/user1
! r! k! z. Q( x, v m9 A9 A # tar -zcvf tmp.tar.gz tmp
1 L8 p; y" A( M5 U/ ~ # tar -ztvf tmp.tar.gz. t i5 l' N8 G6 m- W! D
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/+ \0 l2 c$ U; F, {9 w1 u
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
( B% d) I( b% X, @& j/ @ -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt4 `% E# J R; ^! ^. h
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑$ T/ `( p1 a, ^5 Y; R
# tar -ztvf tmp.tar.gz" ?8 H) T! F7 A+ W/ O
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./3 u8 p6 |. T/ t0 {5 y( Q
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt8 @' C0 X# _9 `- C1 c& y
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
! }/ Y) j7 e% m% S解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
( O G* l, \0 ` # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
+ m! \ K. ?8 q! o5 c # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
5 d* f, Y/ @8 B% R( t3 j* J' V 如果工作目錄在/home 以外的位置就要使用絕對路徑
3 V2 h* p1 s' T6 Y0 P: |- ?* o" ].bz
P0 X3 _( i/ y5 _- E.tar.bz
. d- E6 n4 z6 p7 t. Q8 E2 e6 L.bz2
" N' D$ {5 Z1 O.tar.bz2* R1 x% K' X+ o4 w: K
.xz
/ T' ?1 i5 O5 \7 A- O: I9 }.tar.xz% x7 j% T2 f# u
.Z# J# U; T1 H* H' p1 u1 o2 F
.tar.Z, n4 ]( P* C4 Z. _/ y" ?
.tgz
! P9 A. U6 H) d$ E: F.tar.tgz4 ]" S1 m3 j+ }0 y; z8 z
.7z
! m4 n# l+ o# j: N.zip. P7 m0 X. X5 Y9 G
.rar
7 E0 r9 I" ^9 `, v.lha) F/ E( ~- H; q+ b; u$ z, U
) N5 h4 j9 M% X+ t, n+ F9 I* ?
split : 大檔分割成小檔例如:
3 H9 } f$ q, ]/ C7 w把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令
9 b9 Q; d3 M! r9 c; |5 A3 d. xsplit -b 50m file.tar.gz (m 可以改成G(giga))
6 d, y, z$ l; }# a2 q若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:6 g0 f& j, U4 u
cat xaa xab xac xad xae xaf > file.tar.gz: |" L' F2 J* s4 J
8 L9 Q) ^* y$ F6 i7 J5 S
$ Q( K) w0 |& E8 l H參考自 : $ u( _3 e3 F( C; I/ o
http://note.drx.tw/2008/04/command.html+ g3 [9 E! T4 ?2 }7 l& v! i5 n
' D1 H2 `& A* V3 I8 K4 g! o" x' y" }; r! q& |. j/ p4 V
1 O6 l+ Z! {- c W; s: N: Y y( y) R
* G" d& w, [) L p' Q
" ?: Q& N1 `/ M X" D2 y
3 @7 p- G) u. x8 Q; ?7 z7 l9 r( [+ K3 S
/ N/ E9 I- a M
# H5 ^& m- i6 H2 n |
|