|
|
tid=26349&Linux 各種壓縮與解壓縮指令:
0 h& z* ^9 S i/ T4 o) @3 V0 t.tar
# M8 S+ [. a E( s/ u; R% q6 z.gz5 K( K4 J0 t t1 A
.tar.gz
- p e+ U% {) r2 W: t2 a排除不想壓縮的目錄或檔案: 例如5 z# r8 u. a2 e7 e3 `6 ?
要備份的目錄是 aaa
; |& d) s! Z) i! Q6 M 不想要備份的是 aaa 裡面的 bbb 子目錄 ( J" |0 d g! B& [' l0 ]
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa- |* |6 w' [$ I
壓縮不包含路徑資訊(絕對路徑): 例如
: L; k: J; A6 }* K$ } 我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /" T: ^$ s, ^0 O! f* ~
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑3 G( x& K3 a2 L. d. s$ H( P! g
# tar -ztvf tmp.tar.gz 4 e2 h4 D" I' P
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
3 }' V0 z5 o% P' |" }( _/ M -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
/ p( ~8 T+ a2 @/ A8 k; v -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
+ K9 ?/ V8 a* I # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑$ w6 @' g+ f, |8 n6 ^
# tar -ztvf tmp.tar.gz * i4 [( q2 t0 n4 w9 L
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
# h. _- K3 L" [& p0 K, B/ t1 g -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
) J7 D+ W8 S9 S# J W7 F' Y -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt1 [5 b: a: ~# X2 `
目前工作目錄在 /home/user15 F1 K5 E! U. R' Z" c
# tar -zcvf tmp.tar.gz tmp+ ?5 ~) S5 s' x% ~
# tar -ztvf tmp.tar.gz) \; F! S {) U( ]4 L0 l
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
: Q! \+ p/ B) i+ {5 Y -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
6 I/ y# e2 H! |3 I2 b" \2 l% V -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt9 K. h/ K" g+ R0 U* B; m3 t
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑) h7 Y$ v. I3 R1 Z5 k+ S
# tar -ztvf tmp.tar.gz7 X! s, _8 [' f' p
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./# H5 e! l; _( [- J4 S
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
. L' S6 `/ r3 }" ` -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
5 f1 x3 r$ k0 u7 O解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
) E/ l3 D" c, t+ m& h$ @ # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
: H8 b+ ^5 h! ^8 z% O, J" A # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
* }! B5 ^; E. p/ `4 E9 Z# s 如果工作目錄在/home 以外的位置就要使用絕對路徑
/ }' a: S( x# e6 ]7 p- j" f6 _$ }.bz
& t8 a0 o" d7 s3 Q& }; A/ F.tar.bz
+ V8 D$ n8 z2 {8 [; l9 z.bz2' q) ^9 E" U' J: Y% L1 ~4 d
.tar.bz2
: b8 O* O# Z$ l0 Y: x$ I.xz2 C# _' Z* v1 u U2 z5 O) i
.tar.xz+ v4 o8 \( Q' i: ~9 ^
.Z6 O6 ~6 Y& G" j0 ], j2 [
.tar.Z+ |/ n( s4 {! N9 X' U
.tgz
: }! B- m3 }& x& b.tar.tgz* i0 ~# n# `7 Z6 \8 n/ R
.7z6 n% ?! ^" i1 m+ f+ f a9 i
.zip% D% W1 I7 ~5 Z
.rar, Y8 z! b. e: j. w) M7 ]) m
.lha
$ k3 r9 p0 g6 V2 E. E! r0 ?
( e9 w1 B- W% b5 nsplit : 大檔分割成小檔例如:) g4 t" i5 B6 l3 s* Y
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令
! U8 ?6 F0 g# Wsplit -b 50m file.tar.gz (m 可以改成G(giga))
. \% k# ^9 I$ G: l$ Q, n若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:) d! B- t1 F3 w# d. `
cat xaa xab xac xad xae xaf > file.tar.gz
, c0 U9 j0 Q4 K- w/ R) i4 m( C1 N" ^2 r* I
8 i/ A' ` E) H4 M3 U; z
參考自 : / L% r4 @; {8 s
http://note.drx.tw/2008/04/command.html
, h( n; J/ S' R3 W: q0 z# D( J; k
5 x. S4 v k: ]& p* X
/ h* A2 d5 r2 P! K6 C$ g% e$ }) \ h$ t7 E* k, O( B
3 s R! e2 p- w) H3 Z% ]1 O
; g! Y0 {( |; h
9 P# ]; S8 R: c' t
* g+ Q# j! s: k; X/ v* A' a: ~" W
+ y3 L3 g v; G; T& N |
|