|
tid=26349&Linux 各種壓縮與解壓縮指令:; W! B$ g7 e4 s5 b0 L
.tar
+ t' z6 q" l) W2 S* \( M.gz/ P( C2 I* J i- m, e# u# w
.tar.gz
+ G4 M% ?: X4 K: e& q6 e排除不想壓縮的目錄或檔案: 例如3 p: Q4 w& C2 e
要備份的目錄是 aaa
5 n0 s0 M/ g* X; n( d4 F" b) [ 不想要備份的是 aaa 裡面的 bbb 子目錄 F' A7 G" J3 X6 y( `
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa
; s* u/ `9 B# I壓縮不包含路徑資訊(絕對路徑): 例如
7 e. L. O5 S2 t7 C2 A 我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
" X* }1 W/ V6 P # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑/ U# \) z& h+ M. r: F) s
# tar -ztvf tmp.tar.gz
/ D; T3 h; m& I5 V$ { drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/) f; y* `/ U* ?' F3 R
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt, U4 M4 l0 o! J3 P& Y
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt# z! _$ S) o6 \4 {
# tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑5 d1 P3 A$ H6 Y6 x+ {
# tar -ztvf tmp.tar.gz
( t% _( K* w8 t' X1 g, T drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
0 B' ^, \. x2 G" Y4 P! a1 C -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt7 C8 h4 @/ r4 E! ?# h" h
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
1 z" g; O& r% K) D$ T6 q* @( T" |; O 目前工作目錄在 /home/user15 _( x% p' ~1 g" ?4 c& T
# tar -zcvf tmp.tar.gz tmp
: F' X& l' [7 w I # tar -ztvf tmp.tar.gz
; R+ t2 a3 v3 ~/ D drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
N6 @8 C @; ]. x4 A5 A4 M -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
- A) d) X; v7 Y -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
4 e% P, u' r0 u. H # tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑3 W8 n: B4 U2 e! k* o5 T
# tar -ztvf tmp.tar.gz. L/ s! y9 f$ s% g8 x
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
# A7 K; t) B7 v -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
0 b! q* G& Q5 U& r5 ?0 \1 U -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
1 P. A$ M" V( r1 f解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
( v% |3 ^& q4 L1 s3 @3 ]5 Z5 \ # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
8 }4 b9 }+ G8 w7 G0 N# } # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
% \' X6 W5 G3 m2 I' v' w 如果工作目錄在/home 以外的位置就要使用絕對路徑
# Q, b5 o2 l; N" o* f.bz
3 d: W5 r# f g0 ?, y# I: P.tar.bz" c- T5 b8 h" ^; G
.bz29 M+ h; w9 h& {7 m# T
.tar.bz2
+ z& a3 e% o0 N( D, ].xz
( t. p# |6 h2 ? |/ Q.tar.xz
A t* ]# m. ?/ {, {/ ?.Z
' m2 k- S* B3 U.tar.Z+ O- z0 `% X: E6 m ?. T i
.tgz
U! ?, S$ Q0 _1 I) H# r4 \. Z.tar.tgz
: P$ e r' g- b) i$ s.7z, }; [9 s6 ?3 V Q" s. ~4 ?& S
.zip
# i( G4 i) n$ u.rar
a1 L6 } k: t9 x5 \' ?. n1 C) C6 e.lha1 ]! m& j# M) D& m; U
1 ?5 @* I7 d' `( F, q
split : 大檔分割成小檔例如:
% x9 f/ R) o0 b, P6 d. R把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 2 i$ J- U; |5 W# [5 M2 \7 Z. X
split -b 50m file.tar.gz (m 可以改成G(giga))
- v: r3 N" C* f2 t2 k若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:1 e1 I a& J+ \+ G
cat xaa xab xac xad xae xaf > file.tar.gz4 _6 W2 n! M- @8 k3 c- f
$ [& J4 }( r; v" f# J4 v
4 X3 f- K' t7 j% y- r+ [+ v7 ^參考自 :
( F0 A$ @" i2 J" R% xhttp://note.drx.tw/2008/04/command.html
) b0 n7 v- x6 O. R- T3 J8 F
* M! k, b2 E$ e% k3 u1 Q; T2 d
2 w4 i1 c3 x- \7 R: W* ]6 C: \3 C. v- @" i) D
* H" n5 |) K; W5 J# Y5 o, e: S. P0 w
! q1 M. S" {1 a* D$ J/ h0 ^, `" \7 \1 ?0 n5 C# i
1 |1 X2 i3 g: Y/ M: G4 v9 Q
0 |- H/ z1 @$ l |
|