|
|
tid=26349&Linux 各種壓縮與解壓縮指令:
0 d1 g" O1 k5 Q# o6 Y, r.tar
) u1 u# ~, ~" ]2 K.gz
/ P9 w+ o# g+ k5 b.tar.gz
/ U- z+ @. B8 e/ m' K1 w7 N排除不想壓縮的目錄或檔案: 例如
) Z4 ]2 L8 ~7 a, X) o 要備份的目錄是 aaa7 m3 L2 |# B/ u* O
不想要備份的是 aaa 裡面的 bbb 子目錄 ' Z, E% B5 G6 M6 c0 r) R2 r/ o
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa8 w" e5 H. ~% k G6 M: Y
壓縮不包含路徑資訊(絕對路徑): 例如# ? ]) L, ~$ A% X' ~
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /2 P5 N9 A4 o4 O$ E( {8 A. I
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑
3 r6 g" i% R" Y5 a3 I # tar -ztvf tmp.tar.gz 7 }6 x% d+ A6 y+ P
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
9 Q0 X/ G$ g: r -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt. a- G) [7 Q8 W% \8 S
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
2 k$ q" @ Y: q+ u, z; {% c& F # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
6 I# l v `! `) {. S) x # tar -ztvf tmp.tar.gz
& D& V6 B) z7 V: c$ w0 m drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./: t" _/ f# z$ H, S, s
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
2 `8 M$ g: l! R+ A% }3 d3 l' Z -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt" r6 U2 U1 i4 s' V
目前工作目錄在 /home/user10 t6 a2 ?* c, T% q! X9 b
# tar -zcvf tmp.tar.gz tmp
0 h% W9 y, c5 g; O # tar -ztvf tmp.tar.gz- W9 g' Z5 Y% T3 b: z- {2 A
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/2 w8 g/ b7 ?; ?. P2 Q. `
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
0 f0 Z# j, @0 n8 B$ ?- { -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt3 v3 |, r3 P0 d! \
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
* H, |! f7 o2 W3 B5 I9 W4 B. H3 q9 [ # tar -ztvf tmp.tar.gz8 \+ d( O# A' n" Q, ?0 p6 h
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./: h0 ?& A7 x- h- A
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
9 `! l6 N/ ^: T* ` F9 o8 F' T -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt/ J' b1 x0 O0 g4 P
解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
; Z0 B& r" N2 `8 ] # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
) b" C4 [. D2 f3 `. e # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
5 `- j5 f1 O; k! X" Y7 T: _3 a 如果工作目錄在/home 以外的位置就要使用絕對路徑6 w& |" J8 ?1 b2 [9 a' @) W
.bz
0 Y4 c! H/ j3 A.tar.bz
, G! h1 @% f7 G$ _. C6 Q.bz2) @/ I) N l1 c& ~2 p5 O
.tar.bz2
2 B2 c+ f/ F D5 h, S.xz0 u/ q; X& ], u- O9 H
.tar.xz4 @) }8 D3 N1 h& h
.Z
7 \) y1 W" | m9 E5 q.tar.Z$ G( t# k8 E- t A9 D3 s
.tgz" o" u* Y$ `+ ^/ n
.tar.tgz
7 c, |' T7 h0 v9 ?.7z c' J9 H9 q: ~ {+ i
.zip9 s8 Z& z; ^, ]% L) A& K' H6 L
.rar
& J$ b. y8 y% |. l: v( x$ s. z.lha
* S$ G/ o' U2 _- O5 B6 `+ v% c+ C ~" r7 e, C$ P
split : 大檔分割成小檔例如:
- b% {9 Z+ z2 v) x. \把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 8 ?0 B/ I5 j3 i1 _/ Q: k
split -b 50m file.tar.gz (m 可以改成G(giga))
8 \$ n- A- _+ a9 C* H若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
0 C' T8 v! l2 r0 ]1 j( U# G% {cat xaa xab xac xad xae xaf > file.tar.gz
6 ^: v, `1 Y2 q$ o9 r5 j- m% w
0 e" P) @; t( b J, y, r- G* z* {, ]% k
參考自 :
( g& D- Y5 E/ I3 i8 Phttp://note.drx.tw/2008/04/command.html
" L$ Z+ z3 F4 b9 S D5 A- @/ l7 @
. G+ U$ b5 Z) |/ ] u0 h
; ~& ?- m1 t5 e5 K% Z9 r/ H1 M5 R% l7 n3 ~
* f' w. g) B/ P: H# s$ e! ?. q% z4 D: D
/ g# K. V' K1 K4 H4 }5 l2 X( Y
) o% S7 l4 C( t
. b9 ]4 ~4 b+ w5 K# P1 r6 M
" r" j9 E. s2 ?3 }* Q |
|