1. 程式人生 > >四周第五次課(3月2日)

四周第五次課(3月2日)

linux 學習 筆記

6.5 zip壓縮工具
6.6 tar打包
6.7 打包並壓縮



6.5 zip壓縮工具


技術分享圖片

zip壓縮工具支持壓縮目錄。


開始zip之前做一下準備工作

首先將/tmp/aminglinux cp到/tmp/d6z下

# cd /tmp/d6z

# cp -r /tmp/aminglinux/ .

# tree aminglinux/

aminglinux/

├── 2

│ ├── 2.txt

│ └── 4.txt

└── aming2

├── 2

│ └── 2.txt

└── aming1

├── 2

│ └── 2.txt

└── aminglinux

└── 2

cp /d6z的4.txt到/aminglinux/2/,然後#du -sh 查看大小

# cp 4.txt aminglinux/2/

# du -sh aminglinux/

1.4M aminglinux/


zip壓縮使用

用法 zip 壓縮後的名稱 需要壓縮的文件或目錄

壓縮文件

# zip 2.txt.zip 2.txt

adding: 2.txt (deflated 74%)

zip壓縮大小,取決於文件內容多余少。壓縮率相對gzip,bzip2,xz來說比較中肯。


壓縮目錄加-r (此處因為還有文件,所以也添加上3.txt。)

# zip -r aming.zip 3.txt aminglinux/

adding: 3.txt (deflated 74%)

adding: aminglinux/ (stored 0%)

adding: aminglinux/2/ (stored 0%)

adding: aminglinux/2/2.txt (stored 0%)

adding: aminglinux/2/4.txt (deflated 74%)

adding: aminglinux/aming2/ (stored 0%)

adding: aminglinux/aming2/aming1/ (stored 0%)

adding: aminglinux/aming2/aming1/2/ (stored 0%)

adding: aminglinux/aming2/aming1/2/2.txt (stored 0%)

adding: aminglinux/aming2/aming1/aminglinux/ (stored 0%)

adding: aminglinux/aming2/aming1/aminglinux/2/ (stored 0%)

adding: aminglinux/aming2/aming1/aminglinux/2/2.txt (stored 0%)

adding: aminglinux/aming2/2/ (stored 0%)

adding: aminglinux/aming2/2/2.txt (stored 0%)

zip壓縮不刪除壓縮前的文件

# du -sh aming.zip

748K aming.zip


解壓縮:因為zip壓縮沒有把原文件刪除,所以,解壓當前位置時會有覆蓋動作沖突,具體選項根據實際情況來操作。

# unzip aming.zip

Archive: aming.zip

replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

inflating: 3.txt

extracting: aminglinux/2/2.txt

inflating: aminglinux/2/4.txt

extracting: aminglinux/aming2/aming1/2/2.txt

extracting: aminglinux/aming2/aming1/aminglinux/2/2.txt

extracting: aminglinux/aming2/2/2.txt


指定解壓位置 -d

# unzip 2.txt.zip -d test/

Archive: 2.txt.zip

inflating: test/2.txt

(unzip後面帶zip壓縮文件 -d 指定位置 test/代表/d6z/test/。一般當前目錄下是用./test或者 test/表示


壓縮之前的文件名跟壓縮之後的文件名是一樣的,不能修改。


查看壓縮包的文件列表。(看不到文件內容)

#unzip -l aming.zip



6.6 tar打包


介紹

技術分享圖片

tar打包工具

打包目的:打包後的文件傳送會比較整齊和快捷。

例如要傳送100M的文件,裏面有幾千個文件,直接傳輸的話會很費時間,但是如果打包後,傳送會省時省時。


關於tar選項

-z 表示同時用gzip壓縮

-j 表示同時用bzip2壓縮

-J 表示同時用xz壓縮

-x 表示解包或者解壓縮

-t 表示查看tar包裏的文件

-c 表示建立一個tar包或者壓縮文件包

-v 表示可視化

-f 後面跟文件名(即-f filename ,註意:多個組合選項下 -f最好 放到最後)

--exclude filename 表示打包或者壓縮時,過濾filename的文件或 目錄,不打包filename。(排除,過濾用法)


將/aminglinux的文件和目錄打包,並創建且命名為aminglinux.tar的tar打包文件(-v是可視化,可以看到進度)

# tar -cvf aminglinux.tar aminglinux/

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt


如果重復已存在打包,不會提示任何信息,會直接覆蓋且再打包。


解tar包

# tar -xvf aminglinux.tar

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt


tar可以同時打包目錄和文件

# tar -cvf aminglinux.tar aminglinux/ 3.txt 4.txt

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt

3.txt

4.txt


--exclude 過濾用法

--exclude aming1

[root@centos7 d6z]# tar -cvf aminglinux.tar --exclude aming1 aminglinux/ 3.txt 4.txt

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt

3.txt

4.txt

--exclude aming1 --exclude 2.txt 多重過濾命令

[root@centos7 d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude 2.txt aminglinux/ 3.txt 4.txt

aminglinux/

aminglinux/2/

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/2/

3.txt

4.txt

--exclude aming1 --exclude "*.txt" 多重過濾,支持*.txt過濾,註意加""

[root@centos7 d6z]# tar -cvf aminglinux.tar --exclude aming1 --exclude "*.txt" aminglinux/ 3.txt 4.txt

aminglinux/

aminglinux/2/

aminglinux/aming2/

aminglinux/aming2/2/



6.7 打包並壓縮


介紹

技術分享圖片

tar打包並壓縮

gzip用法

[root@centos7 d6z]# tar -czvf aminglinux.tar.gz aminglinux 3.txt


4.txt

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt

3.txt

4.txt

[root@centos7 d6z]# du -sh aminglinux.tar.gz

1.1M aminglinux.tar.gz


bz2用法

[root@centos7 d6z]# tar -cjvf aminglinux.tar.bz2 aminglinux 3.txt


4.txt

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt

3.txt

4.txt

[root@centos7 d6z]# du -sh aminglinux.tar.bz2

408K aminglinux.tar.bz2


xz用法

[root@centos7 d6z]# tar -cJvf aminglinux.tar.xz aminglinux 3.txt


4.txt

aminglinux/

aminglinux/2/

aminglinux/2/2.txt

aminglinux/2/4.txt

aminglinux/aming2/

aminglinux/aming2/aming1/

aminglinux/aming2/aming1/2/

aminglinux/aming2/aming1/2/2.txt

aminglinux/aming2/aming1/aminglinux/

aminglinux/aming2/aming1/aminglinux/2/

aminglinux/aming2/aming1/aminglinux/2/2.txt

aminglinux/aming2/2/

aminglinux/aming2/2/2.txt

3.txt

4.txt

[root@centos7 d6z]# du -sh aminglinux.tar.xz

60K aminglinux.tar.xz

壓縮得越狠,時間越慢。


解壓縮 -c改成-x

例如# tar -zxvf aminglinux.tar.gz 解壓aminglinux.tar.gz


查看文件列表 #tar -tf

#tar -tf aminglinux.tar.gz


四周第五次課(3月2日)