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.4Maminglinux/

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 
748Kaming.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.1Maminglinux.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 
408Kaminglinux.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
60Kaminglinux.tar.xz

压缩得越狠,时间越慢。


解压缩 -c改成-x

例如

# tar -zxvf aminglinux.tar.gz 解压aminglinux.tar.gz

查看文件列表 #tar -tf

#tar -tf aminglinux.tar.gz