|
tid=26349&Linux 各種壓縮與解壓縮指令:
) F% A+ X, Q: l x& b.tar: _6 J' M L; U$ i9 S! N4 O
.gz& [$ h" R3 F; G
.tar.gz $ s7 T; H' G( `: q5 C
排除不想壓縮的目錄或檔案: 例如% u/ z4 H" f: ]- v9 b0 M8 R
要備份的目錄是 aaa
! N) x: \/ N/ b; `+ k k2 N 不想要備份的是 aaa 裡面的 bbb 子目錄 : d# H. L7 k' ^. T% Z, Q8 |2 v7 `
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa
6 ^7 q6 Z. _) f壓縮不包含路徑資訊(絕對路徑): 例如
- q3 b! D8 c/ Z0 z6 ~; ` 我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
% H; `0 _: R) H5 W3 U0 | # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑
$ M5 z0 u: _. [( C+ H5 G # tar -ztvf tmp.tar.gz
0 B. l) p9 ?+ z, t \3 h$ | drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
, V0 P- ^! E, d5 c. [) p -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt" U, F$ v" g5 P+ K8 e! ]
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
: d* M8 t6 J: V; i7 E) K # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑( t5 S$ }. q. \+ q: J
# tar -ztvf tmp.tar.gz ! [$ _ V1 O5 Y
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./; O. o) D/ ?8 G" h% T- n* f
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt O0 E) }$ J" k, x) R! ] e
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
8 n; @( K3 q0 X/ _$ [6 w5 m8 } 目前工作目錄在 /home/user1
3 p3 g% k( z6 u) e- ~1 o) M. Q # tar -zcvf tmp.tar.gz tmp
0 r- O8 V+ Y& W' B # tar -ztvf tmp.tar.gz
/ j' s' [$ d# `4 {/ L6 U J3 h8 o drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/# G7 i2 m9 s% A, C } U
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
) [/ C$ q/ p3 ]# Q7 P+ G$ P -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt I% W9 K4 p! Q# c, Z
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑; {' `$ Y6 T4 N0 |
# tar -ztvf tmp.tar.gz
( e! s) ?' ~+ b# e b* E drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
9 e! ?" K5 K3 N* i) C1 n" J -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
3 q9 B) n6 j {9 [# \' W -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
! h( J: Q( f: `6 v解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1. R3 t: H& j s3 j) P9 }6 F
# tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行3 Q6 M3 d& m+ y2 A% c
# tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑& K1 J6 ]9 C& c( q
如果工作目錄在/home 以外的位置就要使用絕對路徑
) j8 J9 K5 x4 o# A4 P0 Y" r.bz; l( b) O( Y8 k) |; T# K
.tar.bz5 @, @$ ]2 ^; n) ]( ~
.bz24 R. m/ h; f9 k7 Q2 n
.tar.bz2; T0 x/ {4 v# Y) H/ e# T" m
.xz
. g5 M/ S2 w6 m/ b: {.tar.xz
$ _+ D a' G J% M, S4 {# Q.Z
. F8 a' s; ~+ {2 _; O T.tar.Z
% E1 k8 R# N( b8 y# W/ j, W% L$ p.tgz
l G2 J+ D& n.tar.tgz) l* d5 A8 b2 j! t; P& P
.7z
; o' i" c- k, f% X# n' N.zip
2 o. X% ~' v: [5 s! @9 v.rar
( M$ [9 L) |" l# X.lha
3 p) _3 @1 S, [" g. w+ S7 F& d
" s+ c3 C/ ^( R0 Wsplit : 大檔分割成小檔例如:" H3 R( _( ]8 ~
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 9 d6 k Y) N: N) r% W
split -b 50m file.tar.gz (m 可以改成G(giga))0 W* K( o; q7 C0 m ~
若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
$ {6 _* v; f3 o" h- \0 w+ a) mcat xaa xab xac xad xae xaf > file.tar.gz8 J' p5 `4 a, X6 z' u
9 n+ x) d9 a) j2 `$ u7 L( ^, @6 x3 x
" c' M- o% Q) y% V5 c& b
參考自 :
, R- ]4 m* c) Y0 ahttp://note.drx.tw/2008/04/command.html! J9 r- ~1 c9 n5 z) I! Z
' y; ?6 {6 J; V& H5 O, I
9 \/ I$ L; G" }8 C
; B" X: X8 d3 M! J1 o! E% l+ Q$ w
: R% \7 F% s9 Y# L9 H) ?9 T! m$ |/ ?: J, S! w
0 Z* g+ O, Z5 m
8 f( d" E0 h0 z9 J0 ^/ B. @
- I6 } U; _2 x4 k7 y2 n4 o |
|