目录
打包: 将东西放在一起
压缩: 利用某种压缩算法,压缩它的存储空间。
作用: 同样大小的文件夹,打包压缩后传输更快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
(编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|