|
tid=26349&Linux 各種壓縮與解壓縮指令:5 I: C# D; k4 J
.tar
7 Z) _' w% g! ]% i.gz
! f( ^5 C8 z7 L.tar.gz
# k* W, s1 ?* @- [6 q E; R( ^排除不想壓縮的目錄或檔案: 例如% w4 y. z# Q/ r! s1 r
要備份的目錄是 aaa
; |& I1 Y/ q' t3 \8 o! j) O 不想要備份的是 aaa 裡面的 bbb 子目錄
: S+ d3 r5 Q& l( h& S x: s tar zpcvf aaa_backup.tar.gz --exclude=./aaa/bbb ./aaa- o9 _: }* H0 A8 j/ g/ Q
壓縮不包含路徑資訊(絕對路徑): 例如' J4 B) j4 t( p; P( M ?
我要壓縮 /home/user1/tmp/* ,(有 a.txt ,b.txt)不管目前工作目錄在哪,都可以去掉目錄資訊,例如 目前工作目錄在 /
' X, q. U, x# r; }5 c: T) j+ ` # tar -zcvf tmp.tar.gz -C /home/user1 tmp (tmp前有一個空格)不保留" /home/user1"路徑2 f* F; p# `) g0 M* V* J
# tar -ztvf tmp.tar.gz
4 r# O5 a# ~6 ~- |. n1 {4 [ drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/) r; l* c8 @, a$ B1 c! D
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt
5 F; L" C& m2 k; N) O! V; W -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt& H% I6 J& z, H
# tar -zcvf tmp.tar.gz -C /home/user1/tmp . (tmp後有一個空格再一點)不保留" /home/user1/tmp"路徑
: m0 L& w% d1 u. w, f) X # tar -ztvf tmp.tar.gz
9 w& F0 p' A4 q! K0 {* q; r' H drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./
, ^6 x$ D6 U0 i" `. b$ | -rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt/ [3 e2 d: V% k5 W- o
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
7 T# `, N* d: F' X 目前工作目錄在 /home/user1# b' Y& X, ^% d+ r
# tar -zcvf tmp.tar.gz tmp9 d3 {9 |9 D) O# c- o' e) p
# tar -ztvf tmp.tar.gz
$ m! Z2 O# R, K% ] drwxrwxr-x user1/user1 0 2018-04-07 12:10 tmp/
8 c2 x5 I, \" F6 N4 _ -rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/a.txt* R5 z8 }% j0 [. [1 c |7 t/ x
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 tmp/b.txt
& ?1 o( p. ~, L, x' J # tar -zcvf tmp.tar.gz -C tmp . (有一點喔)不保留" tmp"路徑0 E9 ~% t/ m: u0 h! z- Q( U/ i
# tar -ztvf tmp.tar.gz
2 m7 i+ ^% W5 L" J8 q, c6 s+ `7 E drwxrwxr-x user1/user1 0 2018-04-07 12:10 ./& s0 u+ P. S1 m1 P& V6 I' p% _3 v
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./a.txt6 C) n. Q0 w( j+ q& H2 A
-rw-rw-r-- user1/user1 13 2018-04-07 12:10 ./b.txt
. v% A; q1 w \! R解壓縮到指定的目錄 例如 解壓/home/user1/tmp.tar.gz 到 /home/user1/tmp 工作目錄在/home/user1
: j* ~9 O% U0 V' w: Y/ o$ c, i # tar -C tmp -zxvf tmp.tar.gz 可以使用相對路徑, -C(大寫)一定要接在tar後面,其他位置都不行8 J& z: g- R( O+ x9 J1 U; X
# tar -C /home/user1/tmp -zxvf tmp.tar.gz 可以使用絕對路徑6 \$ {% w6 e9 M% h+ U6 ]* ^4 ~; t
如果工作目錄在/home 以外的位置就要使用絕對路徑
8 w( ^2 q# K: }* Y/ o: \3 l1 w.bz
( Z1 m+ I \. |0 G.tar.bz: K; l- v: L5 Y6 ]+ B' N
.bz2# Z6 R7 A: C% ?$ o. Q
.tar.bz2$ i6 g$ u# ^. U; W: D% T
.xz
) h% B: Y- e! h.tar.xz" ^- j- l. D* z' W& j
.Z
. ^( J( t' _$ q# S% ?.tar.Z
; G# Y! J; m" }' ^; V# Q.tgz
6 w$ j$ W2 w1 n% N: [) }# Q, E.tar.tgz
+ u% z! M6 C V9 _.7z4 s( R" ?7 B0 e" o
.zip* A3 _2 `2 n$ e6 |( v7 u7 k) w
.rar o3 u7 ?! Y' M9 }* A* l5 r( n8 Y0 _
.lha* B- g. Q3 H" p: x
% o1 V/ }; u5 M; k6 Z/ u" B
split : 大檔分割成小檔例如:
- ?7 H/ c O) c3 j9 y把一個500MB的檔案(file.tar.gz),分割成每個檔50M的小檔案可以用以下指令 1 ^: x4 {) H$ E9 q
split -b 50m file.tar.gz (m 可以改成G(giga))
! J8 x$ ], C6 O3 N: f n6 |; s3 d若要合併 可以用cat 指令把那些小檔案合併成一個大檔案 例如:+ |) m: o: y. U
cat xaa xab xac xad xae xaf > file.tar.gz
: [7 K* z* S- O8 K) T- ~$ }
, Q. I0 O1 R _+ n( D; y0 H' w6 ~5 v$ d
參考自 :
0 C2 Y9 a1 ~) `http://note.drx.tw/2008/04/command.html
- S# s3 `8 c/ ~6 O4 o
- F7 {: K, `; q( c) K+ C; ?5 l, T; `4 U- H4 g+ v
" b" L6 R+ l' o) [# s6 P8 q8 ^7 V( `# b& ^& S
+ G: o1 W0 A, S+ j I* d: z, k& ~0 O$ H
0 P- Q4 x l; q
f+ {; X" J1 v$ T+ p- s1 Y
0 {1 T; d/ S; {! h/ d ]1 r |
|