1、zip命令
zip命令将目录或文件压缩成zip格式,使用格式如下:
通过zip压缩文件的目标文件可以不写指定扩展名,默认扩展名为zip。
在这里插入代码片压缩文件:zip -r(必须加此参数) 目标文件 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
注意:目标文件可加zip也可不加,-d后面跟解压到的目的地,没有-d默
认为当前目录
zip参数:
-r 递归处理,将指定目录下的所有文件和子目录一并处理,不然子目录只压出来一个空目录
-m 建立压缩文件后,自动删除原始文件
unzip参数:
-d 解压到指定目录下
-t 检查zip文件是否损坏,但不解压
-l 查看压缩的内容,但不解压
-Z 相当于ls -l查看,但不解压
-v 查看压缩的内容的详细信息,但不解压
例:
1、tar命令
tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以支持gzip解压文件,在tar命令中增加一个选项(-j)可以支持bzip2解压文件,所以可以实行一个先打包后压缩的过程。
tar的参数:
-c 建立一个压缩文件(create的意思)
-x 解开一个压缩文件
-t 查看压缩文件里面的文件
注意: c/x/t 同时只能存在一个
-v 压缩的过程中显示文件
-z 是否需要用gzip压缩
-j 是否需要用bzip2压缩
-f 指定存档文件,与其他选项同时使用时,必须在最后
-r 添加文件到已经压缩的文件
-p:使用原文件的原来属性(属性不会依据使用者而变)
-C 解压到指定目录
--exclude FILE 在压缩的过程中,不要将 FILE 打包
-N 比后面接的日期(yyyy/mm/dd)要新的才会被打包进新建的文件中
例1:将整个/etc目录下的文件全部打包到tmp目录中,打包为etc.tar
$tar -cvf /tmp/etc.tar /etc #仅打包,不压缩
$tar -czvf /tmp/etc.tar.gz /etc #打包后,以gzip压缩
$tar -cjvf /tmp/etc.tar.bz2 /etc #打包后,以bzip2压缩
注意,在参数f之后的文件档名是自定义的,习惯上都用 .tar 来作为辨识。
如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的压缩文件;如果加j参数,则以.tar.bz2来作文件名。在知道用什么方法压缩的时候后缀可以不写,但是不写后缀在解压的时候我们就不知道用什么参数解压了。
例2:查阅上述/tmp/etc.tar.gz文件内容
$tar -ztvf /tmp/etc.tar.gz
#使用了gzip压缩,所以要查阅压缩文件时得要加上z参数
例3:将/tmp/etc.tar.gz文件解压缩
$tar -zxvf /tmp/etc.tar.gz
例4:将/tmp/etc.tar.gz文件解压缩到/data目录下
$tar -zxvf /tmp/etc.tar.gz -C /data
例5:将etc.tar.gz解压到/usr/local/src
$cd /usr/local/src
$tar -zxvf /tmp/etc.tar.gz
我们可以将压缩文件在任何地方解开,首先我们将目录变换到/usr/local/src底下,并且解开/tmp/etc.tar.gz,则解开的文件会在/usr/local/src中。
例6:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 1.c解开而已
# tar -zxvf /tmp/etc.tar.gz ./1.c
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达。
例7:将 etc.tar.gz 内的所有文件备份下来,并且保存其权限!
# tar -zxvpf /tmp/etc.tar.gz
这个 -p 的属性是很重要的,尤其是当你要保留原本文件的属性时!
例8:在 /home 当中,比 2020/04/01 新的文件才备份
# tar -N "2020/04/01" -zcvf home.tar.gz /home
例9:我要备份 /home, /etc ,但不要 /home/dmtsai
# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
例9:我要备份 /home, /etc ,但不要 /home/1.c和/home/2.c
# tar --exclude=/home/1.c --exclude=/home/2.c -zcvf myfile.tar.gz /home/* /etc