|
Linux 各種壓縮與解壓縮指令:/ ?8 K; m+ I& R6 L/ H
.tar& o: N( f/ [' G
.gz
) \: V; U& f" K$ }- T6 L4 q' m.tar.gz
! h( }2 S9 v0 k: m更新tar.gz壓縮檔內某一個檔案或某目錄內幾個檔案: 例如
4 K1 r( ]& w. m, j0 G, v6 K參考: https://askubuntu.com/questions/ ... pdate-a-tar-gz-file
* Q( e4 D( j4 \. c! C 1.)先將.tar.gz解壓為.tar
8 U6 p; x" D9 P5 U$ X5 N* @ gunzip filename.tar.gz
( }9 Q! Z# G) J3 } 2.)更新.tar
8 }. q, a8 a2 Y( _ tar -uvf filename.tar new_file 或( Q @! U. s, X& M X6 j& r
tar -uvf filename.tar subdir/*
0 y2 o7 s" Z% G) }' a- {9 H, s+ E: G 3.)壓縮已更新檔.tar
; O" T, M! z; q8 a, H gzip filename.tar
9 t* l% y- r7 p* j8 O2 v
) q* C& J" {# k: {0 D排除不想壓縮的目錄或檔案: 例如5 ~/ @& D6 T' L& }( C$ {
要備份的目錄是 aaa- j2 x8 ]4 |& v& C# r
不想要備份的是 aaa 裡面的 bbb 子目錄
& c; Z9 S& f5 {% u: _ tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa
5 S7 N4 j. H) l% ~3 O0 U+ B' ?- a1 ]
壓縮不包含路徑資訊(絕對路徑): 例如
( ^4 W4 l; y) t1 F 我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
1 ]% o! S7 ?/ @+ r$ U9 ]) g # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑$ ~' U' i" A' C$ j7 @& ]* [% _- v; B
# tar -ztvf tmp.tar.gz ( Q& M# E0 G" R( M8 b
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/5 d* c. q I, c5 K0 ]
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt7 D3 w$ z/ U" M) [9 F9 q. P
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
( ]( y, C1 Y* l# v* o # tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
2 ]8 j5 o f K2 [ # tar -ztvf tmp.tar.gz
$ @# z# T, j& |2 o drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./. l2 A, ~1 n: k9 _" p$ B8 h
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt
7 V# Z0 n. e& d' L# B7 X -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
0 y) z* [. z6 D( e0 ~9 I 目前工作目錄在 /home/user1
9 O p, `( v5 L% ?& @% q # tar -zcvf tmp.tar.gz tmp5 H4 f$ @2 o+ s& ~$ M. S- Q
# tar -ztvf tmp.tar.gz* k, E, F% k4 G: W( y5 O& w
drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
+ q5 k2 C, P$ b5 f% [) e+ v; l -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
% J+ J9 R& F b. w7 q0 M5 M7 f -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt4 a0 \7 \7 `; @ V: ^ P( e
# tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑$ @1 \+ g i1 f( R$ Z! ?
# tar -ztvf tmp.tar.gz3 ]% e" E; G# X6 l
drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
9 C7 p2 t- D9 J3 r& e -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt/ ?" g* t) O$ ?- o' n5 N _* u
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
& f9 v5 O+ Y2 @# ?2 m0 ]; E) h. X7 [
解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
0 U, R' [! ^4 d8 R! r # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行; Q7 E6 G$ T9 n1 ]
# tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑0 L# w2 d$ T1 G' i1 S; E
如果工作目錄在/home 以外的位置就要使用絕對路徑4 T6 d ^! I9 g9 n7 G
.bz
% H- e9 L9 ]* G2 S! U9 R! e.tar.bz+ H& {2 G1 e: ^7 N% f' K% O7 U$ P
.bz2
5 ~5 n9 e7 C- {$ A# g8 Q2 v% ? w8 ?.tar.bz2, s* y9 ~" Q6 V
.xz
& T6 q+ L& R, Q T5 a' Q3 `.tar.xz( B6 B- z1 m' W3 y$ N7 K6 P
.Z) A( v% B3 K6 D
.tar.Z
9 D9 Q9 a @9 x5 F.tgz
" W+ w& w5 B; f; T/ R/ d.tar.tgz
. h3 h. F2 n& J. u.7z n* `* j. d& K! F
.zip9 w# |* j$ B2 W. Q) D
.rar
/ m0 m3 K" q) }4 @.lha
6 W; \! m5 g( v( q+ q! F) }* q/ N; g
split : 大檔分割成小檔例如:9 g0 y. T! f3 y- i- r
把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令
) J% s5 L: R% Isplit -b 50m file.tar.gz (m 可以改成G(giga))
* f d/ _3 h# B( i/ ^4 ]若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:- \8 U3 `; \& H5 a5 E
cat xaa xab xac xad xae xaf > file.tar.gz
" R0 P0 M- _' N9 i% e! S
) l$ {3 r( |( v2 l$ S" K k8 y! R2 T7 [4 D! B
參考自 : - m" ^8 e( V! A" F* ~: s0 I
http://note.drx.tw/2008/04/command.html3 U9 b2 J' a6 J. z, H$ O( }
7 O: W5 T1 k O) K1 N
|
|
-->
|