|
|
Linux 各種壓縮與解壓縮指令:7 F" N0 ~6 Z( j6 J9 r+ F
.tar4 ^5 m, E2 X2 T) @- _: }0 W% _
.gz, G! N. G+ H3 |4 U1 b- c
.tar.gz
4 a4 t. J$ B0 y1 g& G" b更新tar.gz壓縮檔內某一個檔案或某目錄內幾個檔案: 例如
j9 |; d5 z8 a8 J" ^( |9 L* f參考: https://askubuntu.com/questions/ ... pdate-a-tar-gz-file2 t- a% E9 @- D
1.)先將.tar.gz解壓為.tar0 N6 G0 x [* X
gunzip filename.tar.gz
, m5 A( C2 \" }* ?5 ?/ k 2.)更新.tar
7 Y0 o2 N: X# M/ v9 `) z tar -uvf filename.tar new_file 或/ {0 Y- p& i3 I; T
tar -uvf filename.tar subdir/*/ | d- F7 O$ |' Z: ^, C
3.)壓縮已更新檔.tar$ p0 {( K. q4 u. u5 a6 ?5 y& s D
gzip filename.tar
: S5 c( q+ A, J# K1 |$ N" p
1 s, M, `& m5 `) z% x4 a: h排除不想壓縮的目錄或檔案: 例如
/ G( B1 {' E; c' ^( ~ 要備份的目錄是 aaa
/ v4 M- T! v2 F9 z. h 不想要備份的是 aaa 裡面的 bbb 子目錄 & I$ O/ G2 z) W# V; [0 t5 z9 T
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa
( V8 w) K) w/ j# P( c) A0 v; }. s: K5 f) ] G* }8 n2 L4 d- f
壓縮不包含路徑資訊(絕對路徑): 例如! k2 C- ~+ H9 M% q% n5 v
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
) Y3 F: E6 ?1 [& }( M' I # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑
7 L/ m6 Q$ W, c% k, j # tar -ztvf tmp.tar.gz
- l, y3 Z# q& e# V" K! ]5 F6 ~7 u drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/0 X* e0 @+ `0 c7 `/ t' ?
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt2 N' E' _" a$ B1 A; K, X
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
: R0 H* ^1 M1 r # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑5 h: g3 O7 q8 D7 W0 u. F
# tar -ztvf tmp.tar.gz
0 u& ~, g. b. J2 p drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
2 a" ~5 B! r# w$ ` | -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
; H/ j. h u9 _& S -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt' x/ N: a1 U8 P
目前工作目錄在 /home/user1
( O) u& _2 \4 |) R+ i: \' e% a # tar -zcvf tmp.tar.gz tmp
: V/ v+ Z% j* [3 V+ |. v8 p) j5 m # tar -ztvf tmp.tar.gz$ @! I I, C3 I" D
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
- d7 ?* g4 ]. a, k" r% S5 |# a: Q8 K -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt+ k4 y$ O$ V" s J5 B/ v
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
% y+ L% I5 O7 q1 p" T # tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
" Q+ ~: P9 M# Y7 h5 U4 A # tar -ztvf tmp.tar.gz
* g( T0 f# |" [! { drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
- Z l d3 C- h- @/ { -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt1 G% U% w, [8 R/ I* H6 V2 M# ~
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
( G% l- \1 A/ T/ s# H0 \! ~0 H& o* b. o% f& c3 |
解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
3 \7 F C! ?# ^8 E # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
E- _, E, H8 m: Q, L. X # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑4 L5 t5 F% [7 R2 f5 x0 w A% f
如果工作目錄在/home 以外的位置就要使用絕對路徑
2 t5 R: C) n1 M& m7 e+ q.bz
1 [- B; ~ @% `! y4 d.tar.bz ]# W4 V e+ ~; S( J8 ^. s5 f D
.bz2
, Z5 a. n/ B4 T- D6 c2 s4 [.tar.bz24 @, j" K" O! K
.xz
) [" B7 ]" v+ \5 l% W8 j$ m1 f.tar.xz
5 s( z3 L7 `# H7 |.Z
" f. t* V* |5 J. \$ J- G) F.tar.Z, i, ~4 h4 g! k& @
.tgz f/ S) v F+ g
.tar.tgz- ]" A" G8 W! p- O
.7z- y4 S9 `- X7 F
.zip$ i f- ^0 e2 q; c
.rar6 K3 {3 Q3 B. c! v. I
.lha2 m) l+ E r. B6 ^
, I& @- T @3 `3 h9 |+ \
split : 大檔分割成小檔例如:0 i6 f$ B$ x* \+ b" C8 l& C2 C/ ?" x# P
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 ; `* Z X* V4 E7 H7 E* F
split -b 50m file.tar.gz (m 可以改成G(giga))
4 U) P" {' L% l- a1 ^若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
9 a8 Q! l* t7 |cat xaa xab xac xad xae xaf > file.tar.gz
- L, g; V6 k B3 R
6 d% J2 X3 q$ P- ~( |6 i, u$ y& Z$ i$ f. T. ? X
參考自 : * l* V* c, `# G" }& \9 C Y
http://note.drx.tw/2008/04/command.html4 K; I* S/ x+ H! q5 B! \
" k B! I0 C/ n! K# G& _. U
|
|
|