|
Linux 各種壓縮與解壓縮指令:2 d) u2 \" U$ z. g5 J4 G
.tar" G4 M+ Q: [3 S1 C6 R+ Q
.gz* g& E& ~- f1 E) q( U1 [& x
.tar.gz
2 \& ?7 }) B7 p O$ X9 [% `更新tar.gz壓縮檔內某一個檔案或某目錄內幾個檔案: 例如
) P' ]" P7 `9 D, d參考: https://askubuntu.com/questions/ ... pdate-a-tar-gz-file
( x' W$ S: \4 g) J 1.)先將.tar.gz解壓為.tar
8 {5 L6 ^, i" R" w gunzip filename.tar.gz) r- R1 H* U- y: A
2.)更新.tar! ]- S8 c8 W3 [, D7 i
tar -uvf filename.tar new_file 或
$ x5 d! L* |! _ @ tar -uvf filename.tar subdir/*
, H4 h6 Z2 L1 @- b* Q [/ @ 3.)壓縮已更新檔.tar
' j& c' k: ~# n9 a+ [) a. [ gzip filename.tar
6 S! O" @1 m$ z/ [
* D3 F* L' S% `+ }% v! X排除不想壓縮的目錄或檔案: 例如
: e7 X0 n3 I' E$ o) K4 i 要備份的目錄是 aaa+ y1 l( S" H8 C& h
不想要備份的是 aaa 裡面的 bbb 子目錄
" e3 M: p8 F/ C" P2 Z/ ` tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa5 N3 y9 f3 w2 c5 O9 I1 s
7 X9 S# w+ j7 ~9 h$ a9 F& [0 y壓縮不包含路徑資訊(絕對路徑): 例如( Q. U" y+ Z6 h: V: j2 _
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /- M# u- V( {6 ~8 x- V
# tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑# T, m% {/ m$ D
# tar -ztvf tmp.tar.gz 4 d3 `$ [7 I/ { w7 c9 V8 H
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
/ T% y* _0 R6 B -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
) f" b3 k/ P+ T4 B" m% q0 Z$ Z -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
6 o3 d9 ^/ ?5 V4 E4 o! t # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
( M& }5 n! i" M9 ]6 Z2 v, |. x # tar -ztvf tmp.tar.gz
# D$ P) c. e; n- d2 ]+ p" @ drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
8 w! M& J ?3 w; Q -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt3 R4 m) s+ T! ]% a
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt+ t2 m, L$ {; }4 \% t8 k: |
目前工作目錄在 /home/user1
( _* ~8 `4 H+ j # tar -zcvf tmp.tar.gz tmp
# X3 `& ?, X7 V+ ^6 m # tar -ztvf tmp.tar.gz& k4 X( ~( f( E: E9 T
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
' w5 N# i+ P: v& V1 Z. J- N1 U. H -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
( {1 i, {5 `8 l7 V -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
. j$ }* ~( {" a # tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑
3 {$ w; m4 Z5 Q$ D # tar -ztvf tmp.tar.gz
) O7 F- T3 F7 H; e drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
# ^7 J1 S2 j/ J3 j -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
* m$ O/ L& X: E: [% J( n -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt3 _5 y- Y. ?0 D
6 }- z4 ]5 X. C解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1& \( F# |( o# g2 A6 o
# tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行
4 R! F& i9 p) \" C7 E # tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑
: W( R s9 k7 g, e6 v( i+ a8 k 如果工作目錄在/home 以外的位置就要使用絕對路徑' z9 S+ p. N. S7 G
.bz9 ~7 D+ z2 \5 d7 ?2 F- e! s- Z7 V
.tar.bz: X3 G: l0 w; O% J8 E, Y: b
.bz2- ?; @0 a8 i4 K5 n3 J
.tar.bz2$ D ]' Q' l4 f7 r" L1 c8 S
.xz- h8 l5 z* r4 D- u0 e7 a' P) ^/ L
.tar.xz# r2 c$ j$ ~7 d; k* j
.Z
9 i% w' i1 c7 Y1 W( Y8 R.tar.Z- H1 X/ P! B3 Q! K1 \2 N4 @0 f' h( b
.tgz+ U6 _* s9 \! e4 u! K) ?5 v4 U6 z
.tar.tgz8 ?( y: ]* _3 I; O6 q
.7z# E3 h# h% L e" ?3 E
.zip3 ^) g- b O8 H M. o" I% b: @
.rar# {- G4 k6 t; p% [/ {- f) ^
.lha3 B5 n# K0 k! T9 b) \8 A8 S9 V: X
2 u6 F5 I4 s, } Osplit : 大檔分割成小檔例如:
6 N" o6 X8 z/ w1 S把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令
8 q6 V7 ]+ `' @4 F& D; r ?) csplit -b 50m file.tar.gz (m 可以改成G(giga)), u9 H/ q8 B0 w5 Q
若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:
2 I J1 [/ ^4 T) m8 M% @- Wcat xaa xab xac xad xae xaf > file.tar.gz
0 `: O2 j7 c; |9 b
9 T" s. f) ?. Z2 u( d% t9 T$ c( _$ _+ u+ f9 F9 p
參考自 :
' E' O- O& p$ g$ H" A" [http://note.drx.tw/2008/04/command.html
6 N9 t$ E9 C, o2 G& c! l% i8 `9 J5 L% w+ y$ {) D
|
|
-->
|