加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 打包压缩与解压解包

发布时间:2022-10-16 21:31:54 所属栏目:Linux 来源:互联网
导读: 目录
打包: 将东西放在一起
压缩: 利用某种压缩算法,压缩它的存储空间。
作用: 同样大小的文件夹,打包压缩后传输更快linux 压缩,安全性更高。而同样的流量消耗,打包压缩可以传输更多

目录

打包: 将东西放在一起

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

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

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

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

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!