Linux 打包压缩与解压解包

目录

zip / unzip

tar


打包: 将东西放在一起

压缩: 利用某种压缩算法,压缩它的存储空间。

作用: 同样大小的文件夹,打包压缩后传输更快,安全性更高。而同样的流量消耗,打包压缩可以传输更多的数据。 总而言之,打包压缩就是为了传输数据更高效。


其实市面上的压缩文件的后缀非常多,对应着非常多的压缩算法。而这些也都有相应的解压算法。

Linux下,初期我们学习两种压缩/解压方式即可。  1. zip/unzip     2. tar


zip / unzip

zip  -r  compressedfile.zip  directory    zip指令  -r表示递归处理,将指定目录下的所有文件和子目录一并处理,目录需要,单文件不需要。 后跟打包压缩后新创建的压缩文件。打包压缩哪个目录

unzip compressedfile.zip      解压解包这个压缩文件,默认到当前目录下

unzip  compressedfile.zip  -d  /xxx/aaa/bbb   -d表示将压缩文件解压解包到指定目录下。

[yzl@VM-4-5-centos ~]$ ll
total 4
drwxrwxr-x 6 yzl yzl 4096 Jul 18 11:51 directory
[yzl@VM-4-5-centos ~]$ zip -r pack.zip ./directory
  adding: directory/ (stored 0%)
  adding: directory/no/ (stored 0%)
  adding: directory/no/newdir/ (stored 0%)
  adding: directory/noexist.txt (deflated 38%)
  adding: directory/vector/ (stored 0%)
  adding: directory/head5.txt (deflated 55%)
  adding: directory/666.txt (deflated 44%)
  adding: directory/a.out (deflated 73%)
  adding: directory/test/ (stored 0%)
  adding: directory/test/new1.txt (deflated 67%)
  adding: directory/test/hehe.txt (stored 0%)
  adding: directory/test/src (deflated 84%)
  adding: directory/test/file1.txt (deflated 57%)
  adding: directory/tmp.txt (deflated 38%)
  adding: directory/hello.c (deflated 2%)
  adding: directory/hello.txt (deflated 84%)
  adding: directory/directory/ (stored 0%)
  adding: directory/directory/666.txt (deflated 44%)
  adding: directory/directory/a.out (deflated 73%)
  adding: directory/ss (deflated 44%)
  adding: directory/newfile.c (deflated 84%)
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip
[yzl@VM-4-5-centos ~]$ rm -rf directory
[yzl@VM-4-5-centos ~]$ ls
pack.zip
[yzl@VM-4-5-centos ~]$ pwd
/home/yzl
[yzl@VM-4-5-centos ~]$ unzip pack.zip -d ./../../home/yzl/
Archive:  pack.zip
   creating: ./../../home/yzl/directory/
   creating: ./../../home/yzl/directory/no/
   creating: ./../../home/yzl/directory/no/newdir/
  inflating: ./../../home/yzl/directory/noexist.txt  
   creating: ./../../home/yzl/directory/vector/
  inflating: ./../../home/yzl/directory/head5.txt  
  inflating: ./../../home/yzl/directory/666.txt  
  inflating: ./../../home/yzl/directory/a.out  
   creating: ./../../home/yzl/directory/test/
  inflating: ./../../home/yzl/directory/test/new1.txt  
 extracting: ./../../home/yzl/directory/test/hehe.txt  
  inflating: ./../../home/yzl/directory/test/src  
  inflating: ./../../home/yzl/directory/test/file1.txt  
  inflating: ./../../home/yzl/directory/tmp.txt  
  inflating: ./../../home/yzl/directory/hello.c  
  inflating: ./../../home/yzl/directory/hello.txt  
   creating: ./../../home/yzl/directory/directory/
  inflating: ./../../home/yzl/directory/directory/666.txt  
  inflating: ./../../home/yzl/directory/directory/a.out  
  inflating: ./../../home/yzl/directory/ss  
  inflating: ./../../home/yzl/directory/newfile.c  
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip

一种不需要-r也可以压缩目录下所有文件的方法。 使用了通配符而已。

[yzl@VM-4-5-centos ~]$ mkdir t
[yzl@VM-4-5-centos ~]$ cd t
[yzl@VM-4-5-centos t]$ touch aaa.txt
[yzl@VM-4-5-centos t]$ touch bbb.txt
[yzl@VM-4-5-centos t]$ ls
aaa.txt  bbb.txt
[yzl@VM-4-5-centos t]$ cd ..
[yzl@VM-4-5-centos ~]$ zip test.zip t/*
  adding: t/aaa.txt (stored 0%)
  adding: t/bbb.txt (stored 0%)
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip  t  test.zip
[yzl@VM-4-5-centos ~]$ rm -r t
[yzl@VM-4-5-centos ~]$ unzip test.zip -d ./
Archive:  test.zip
 extracting: ./t/aaa.txt             
 extracting: ./t/bbb.txt             
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip  t  test.zip

其实打包,压缩是两个步骤,但是我们把他们合并了。

tar

第二套打包压缩、解压解包的工具命令 

tar的指令比较多,但是目前我们只学习怎么完成工作即可。同样也把打包压缩的过程合并了。

tar -czvf compressedfile.tgz(.tar.gz)  directory 

-c 建立一个压缩文件的参数指令  -z 一种压缩/解压算法,通用于压缩/解压的过程  -v 压缩过程中显示文件   -f 使用档名,表示后面的这个压缩后的文件名字,必须放在指令的最后,后跟压缩文件名

tar -czf  compressedfile.tgz(.tar.gz)  directory 

不显示压缩过程中文件的打包压缩办法。

tar -xzvf compressedfile.tgz 

-x 解开一个压缩文件的参数指令,且显示解压解包过程中的文件。

tar -xzf compressedfile.tgz -C /home/yzl/

同上,不显示解压解包过程中的文件,同样使用-z的解压算法。 -C表示解压解包到指定路径(unzip 是-d)

[yzl@VM-4-5-centos ~]$ ls
directory
[yzl@VM-4-5-centos ~]$ tar -czf pack.zip directory
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip
[yzl@VM-4-5-centos ~]$ rm -rf directory
[yzl@VM-4-5-centos ~]$ ls
pack.zip
[yzl@VM-4-5-centos ~]$ tar -xzvf pack.zip -C ./../../home/yzl/
directory/
directory/no/
directory/no/newdir/
directory/noexist.txt
directory/vector/
directory/head5.txt
directory/666.txt
directory/a.out
directory/test/
directory/test/new1.txt
directory/test/hehe.txt
directory/test/src
directory/test/file1.txt
directory/tmp.txt
directory/hello.c
directory/hello.txt
directory/directory/
directory/directory/666.txt
directory/directory/a.out
directory/ss
directory/newfile.c
[yzl@VM-4-5-centos ~]$ ls
directory  pack.zip
[yzl@VM-4-5-centos ~]$ tree directory
directory
|-- 666.txt
|-- a.out
|-- directory
|   |-- 666.txt
|   `-- a.out
|-- head5.txt
|-- hello.c
|-- hello.txt
|-- newfile.c
|-- no
|   `-- newdir
|-- noexist.txt
|-- ss
|-- test
|   |-- file1.txt
|   |-- hehe.txt
|   |-- new1.txt
|   `-- src
|-- tmp.txt
`-- vector

5 directories, 15 files

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值