|
tid=26349&Linux 各種壓縮與解壓縮指令:
" J' o" }" S: E- {4 D.tar
& B! l/ E' A: g+ @) b) J. H1 V.gz; \: Q- ]* X9 y: ~ z7 t
.tar.gz
6 T, q9 N, l, z& w5 b8 H排除不想壓縮的目錄或檔案: 例如
, r2 C' C3 h% u5 F& ?6 N5 t$ D4 m 要備份的目錄是 aaa6 X) ^3 t% v$ h0 ^! P8 d
不想要備份的是 aaa 裡面的 bbb 子目錄 $ _6 j6 | G7 f2 Q1 g1 K0 w0 o
tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa
4 n/ G L4 T0 k& Q3 r壓縮不包含路徑資訊(絕對路徑): 例如9 k) y i9 N6 A7 ^. R
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /" E1 E( H, G' O
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑/ @, L! n! I+ h' }/ |
# tar -ztvf tmp.tar.gz 2 G; T: ~; ~8 V. ~+ Z; k
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
+ z- U! A( l! ?! t, G/ _ -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
: F+ _* {. h0 H6 l4 A6 A -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt2 n8 a G/ m* T& W# u
# tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
1 ?2 W4 P& j) A" Q3 O" J6 J6 m( ~( | # tar -ztvf tmp.tar.gz
8 C: H6 e- h# B% W, Z drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./" F" D1 q3 ] A8 [+ r \# H
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt! P6 ?0 w) P; f: h" D; Z
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
9 Z% q0 A3 E- M7 v0 }9 L 目前工作目錄在 /home/user1
# `" M0 \4 \6 q9 a" g5 T # tar -zcvf tmp.tar.gz tmp2 u8 C% @5 j" ^% P# x4 \
# tar -ztvf tmp.tar.gz
5 N9 D# N3 M E! q: \ drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
" K6 B8 p3 b) E6 _& f8 @ -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt2 e& }7 ^$ _# K6 ^3 L! b( V
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt X3 t! ^1 O: ?2 n/ g9 J; w
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
; o1 u$ c9 Z& k3 H& I% a # tar -ztvf tmp.tar.gz8 s8 C2 I3 A' z+ A& v) _3 ]0 a
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
' Z) P* ]; D3 F8 r( ^) q -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt! O8 i, g2 L" U% b
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt& w0 K, d+ @1 Z* U+ X9 b/ L
解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1) R! [/ J' y; b9 ^5 G0 n: G4 J
# tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行$ G0 K0 w' N* B5 N3 R
# tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
1 Z; j7 R8 e, }; A 如果工作目錄在/home 以外的位置就要使用絕對路徑0 G$ h7 g; |0 }
.bz
! S( {% B0 X/ A. N& S ]8 b.tar.bz1 p0 S1 d5 G S
.bz2
f: _7 N/ W$ E# F7 ]0 x+ J.tar.bz25 O& q; \5 }7 _, M, M
.xz0 X; a6 N6 N/ J, b
.tar.xz5 S. b& n" t% c, \
.Z
, C- t: @" I8 [7 K W: ^6 T.tar.Z4 b4 A3 h+ u; P" E) {5 p
.tgz5 C3 h3 m+ D0 B Y6 m# u
.tar.tgz2 R5 n+ M8 a% n* \4 p1 k
.7z$ I) u6 Q6 |6 E9 y Q
.zip
! \- K4 {! P, q0 A! u+ B4 `" F.rar
~: `6 n7 v L; ^# o+ t4 T) h.lha+ {: G0 e- |3 x9 x% K: T$ p5 {! w/ W
9 S4 n7 p1 _' V b qsplit : 大檔分割成小檔例如:. o' f4 s- v0 y, _# k
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 # q* {8 }4 j: t( w
split -b 50m file.tar.gz (m 可以改成G(giga))
& y J$ l; t& V若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
3 r' N5 d6 C, T8 k1 zcat xaa xab xac xad xae xaf > file.tar.gz" Q! E: K/ J# a
6 \5 o5 H- P6 F2 B Q: z1 |
1 @$ W/ l# q. {% f% I7 Q
參考自 : " z+ ^2 s% d3 f1 {. |
http://note.drx.tw/2008/04/command.html, ]1 @& `7 S% d0 t" O" C m1 ^
1 O8 l/ Q1 V9 f& d- U
6 z& b0 l# b3 d Z: I z5 _: y% `
! Z4 z* ^& W9 Z% R
* D# z$ N0 u- t5 y! u
, {) T" n% U, j( L4 R2 U* T' }) `7 x* G- K2 s0 ~* u
4 u* v9 _% n- I3 E3 y% q0 k9 H" q* I* L; P5 C6 a- D2 {' V
|
|