|
|
tid=26349&Linux 各種壓縮與解壓縮指令:
6 H' k( k; T3 \' T.tar5 c: G0 F; [& R3 e8 Z5 I$ A; [0 c
.gz
1 O( O- ], y# i# G$ t; C& s.tar.gz
. \! |' N; ?" C8 k. z6 z排除不想壓縮的目錄或檔案: 例如
5 y6 B: K" w, n- [5 n& G 要備份的目錄是 aaa
$ K5 {! @& q! W) ]+ H3 f' [ 不想要備份的是 aaa 裡面的 bbb 子目錄 9 u) b" j2 k$ a, e3 c
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa$ ?. K. U& H; j$ l
壓縮不包含路徑資訊(絕對路徑): 例如
% r, [- q( u. n& E& _5 m 我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
& m6 U$ q; g6 {8 e* D" k # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑
+ P: A$ W# p. u: Q" z # tar -ztvf tmp.tar.gz
0 N. O: {! F* W! P p drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
8 C$ |$ r" u# g$ T- T -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt4 k9 P$ R/ j& J' u& ?! R" n8 }
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
" D- p" }( f( }* C3 i; i2 B # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑1 d0 Z! T$ f0 @* n& j
# tar -ztvf tmp.tar.gz
2 w+ {" M+ V* E) ] drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
( M* ?& E3 Y& j/ }' b -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
1 m, ?5 j" x! o1 Z" w -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
5 H; H9 O% p; }% o, ~ 目前工作目錄在 /home/user11 W9 J4 H7 z( P3 d. N4 {
# tar -zcvf tmp.tar.gz tmp9 Z: g. T; @& d; z$ Q3 m
# tar -ztvf tmp.tar.gz
/ X& _! ~( ^* A* U: i$ z drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
8 Y, ?4 ] i- v, c7 Z. A -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
% |- [" n6 A; i -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt7 g9 Z: Q# s/ z3 D; T3 \# T9 D
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
1 ^2 n' s- x4 @. w% f+ L# a # tar -ztvf tmp.tar.gz: j2 ]9 d* I8 Q7 U2 b
drwxrwxr-x user1/user1 0 2018-04-07 12:10 .// @7 ^+ {* J8 z" E9 h8 W
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
& Y7 M3 {1 H! N) T -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt) G# H$ c' Y9 ]5 y) e
解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
/ u9 }$ h7 Z$ M/ h$ F # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
0 p: R K' g- Q! D8 j$ Z: l, q4 ` # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑2 c. n* ~$ ^4 x! P6 t1 u4 P, N
如果工作目錄在/home 以外的位置就要使用絕對路徑
% d' e3 Q1 u: I" w0 [+ ^5 ~.bz
* n) i4 M& I: K.tar.bz2 j, u/ s" X$ x' m5 j
.bz2: i4 y) x6 c( j# q: F1 D- K
.tar.bz2
* ]4 L- w7 v( h6 d.xz; K2 }# k. o4 i" h9 |
.tar.xz/ r7 o `) W8 [& E/ P/ J
.Z
( Y; M/ z' F$ |& S5 ~# r.tar.Z, k0 w) ]. e' i9 x9 c; u5 [
.tgz
. {- n. B V3 l/ C; R.tar.tgz
- R6 V) P! k2 g0 k a.7z
) _" u: `* [) g2 A9 B8 |) j4 z! t.zip
( V5 H; e n- M+ ?" C! j.rar3 w3 o* q p- r: m- w1 R
.lha/ k+ O/ m" T* n2 y
* D/ }: T: {1 A2 k6 \$ p- i% rsplit : 大檔分割成小檔例如:
2 T$ H' |7 ^& t t+ K8 U把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 - L$ N$ p9 n- n% J
split -b 50m file.tar.gz (m 可以改成G(giga))
+ L) i1 E C% g( @7 p! A% Y若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
O1 _% \2 S. F$ R7 {3 Pcat xaa xab xac xad xae xaf > file.tar.gz, t3 f& v. y2 ^6 O9 z: e1 U
8 e( Z3 d: ~+ |4 q7 P2 }
$ o$ h; E" e$ q9 |+ e6 S
參考自 :
$ T l8 x3 a# J% M4 _, Bhttp://note.drx.tw/2008/04/command.html
/ h, d& {% l9 P! `0 {; z5 P) r+ W( {
7 Z/ i6 I3 k$ n+ K% C! Z1 R2 N* ^; E; U7 x5 \
1 n) {4 `4 I9 J* H" s, i- a+ P
9 W) j+ G) k7 r
& K: T2 R# ]: j1 R3 a, U; {, h) B# ^8 t! s+ [
1 p# N7 N2 Y) b
$ o& ^/ a" m% L5 G! n
|
|