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

Linux 打包压缩与解压解包

发布时间:2022-10-28 15:50:42 所属栏目: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
 

(编辑:海洋资讯信息网)

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