打包压缩命令(十一)

打包压缩命令:tar,zip,gzip,bzip2

常用的打包工具:tar;

压缩工具:zip、gzip、bzip2


11.1.zip

功能:兼容unix和windows,可以一次性压缩多个文件

语法:zip 压缩后的路径文件 需要压缩的文件1 文件2

常用选项:

-r:递归压缩

解压缩:

unzip 需要解压的文件 (默认解压到当前目录)

unzip 需要解压的文件 -d 解压后的路径

示例:

[[email protected] tmp]# zip /tmp/123.zip /etc/*
[[email protected] tmp]# unzip 123.zip -d test/
[[email protected] tmp]# ls test/
etc

11.2.gzip

功能:只能压缩单个文件,压缩速度相对较快,压缩率较低,cpu消耗相对较低

语法:gzip 需要压缩的文件

gzip 需要压缩的文件1 需要压缩的文件2

常用选项:

-c:保留源文件压缩和解压缩

-v:打印详细信息

-d 解压缩的参数

-t 检查压缩文件,看是否有错误

-# 压缩等级1-9,越高越好,但也越慢,默认是6

解压缩:

gunzip 需要解压的文件

gzip -d 需要解压的文件

查看压缩文件:

zcat

问题1:gzip工具能不能压缩一个目录?

答案是不能的

示例:

[[email protected] tmp]# gzip *   #压缩当前目录下的所有文件
[[email protected] tmp]# ll      #只有目录没有压缩
total 207200
-rw-r--r--. 1 0 0        32 May 20 13:33 1addf98dffa.gz
-rw-r--r--. 1 0 0        31 May 20 13:35 1ddf67dfdf.gz
-rw-r--r--. 1 0 0     71460 Jun  4 11:49 20170609.tar.gz
-rw-r--r--. 1 0 0        31 May 20 13:33 3dfdf7ghhn.gz
drwxr-xr-x. 2 0 0      4096 Jun  4 11:30 etc
[[email protected] tmp]# gzip -d *  #解压当前目录的所有文件

11.3.bzip2

功能:只能压缩单个文件,压缩率相对较高,压缩速度相对慢 cpu消耗相对较高

语法:

bzip2 需要压缩的文件

bzip2 需要压缩的文件1 需要压缩的文件2

常用选项:

-c 将压缩过程中产生的数据输出到屏幕上

-d 解压缩参数

-k 保留原文件

-z 压缩的参数

-v 显示压缩比

-# 压缩等级1-9,和gzip一样

解压缩:

bunzip2 需要解压的文件

bzip2 -d 需要解压的文件

查看压缩文件

bzcat

示例:

[[email protected] test]# bzip2 -v9 serial.conf   #打印压缩比
  serial.conf:  1.784:1,  4.485 bits/byte, 43.93% saved, 1302 in, 730 out.
[[email protected] test]# ls serial.conf.bz2 
serial.conf.bz2
[[email protected] test]# ls serial.conf   #但是原文件没有了
ls: cannot access serial.conf: No such file or director
[[email protected] test]# bzip2 -z -k serial.conf    #加-k就保留了原文件
[[email protected] test]# ls serial.conf*
serial.conf  serial.conf.bz2

11.4.tar

功能:打包工具

语法:tar [OPTION...] [FILE]...

参数:

-c:创建一个tar包

--delete : 从归档文件 (而非磁带) 中删除

-f:指定包名

-z:调用gzip压缩工具压缩

-j:调用bzip2压缩工具压缩

-v:显示详细信息

-x:解压

-t:查看tar包内容

-r:追加文件到tar包

-J:调用xz压缩工具

-C:指定解压的路径

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

说明:

参数前面-可有可无

示例:

#把/etc目录下的文件全部打包成为/tmp/etc.tar,打包压缩名可以随便起,常规是以tar,便于区分
[[email protected] ~]# tar cvf /tmp/etc.tar /etc    #只打包,不压缩
[[email protected] ~]# ll /tmp/etc.tar 
-rw-r--r--. 1 root root 27013120 Jun  4 16:50 /tmp/etc.tar
[[email protected] ~]# tar zcvf /tmp/etc.tar.gz /etc   #打包并以gzip压缩,.tgz也是一样
[[email protected] ~]# ll /tmp/etc.tar.gz
-rw-r--r--. 1 root root 9181726 Jun  4 16:52 /tmp/etc.tar.gz
[[email protected] ~]# tar jcvf /tmp/etc.tar.bz2 /etc   #打包并以bzip2压缩,.tbz2也是一样
[[email protected] ~]# ll /tmp/etc.tar.bz2 
-rw-r--r--. 1 root root 8161113 Jun  4 16:55 /tmp/etc.tar.bz2
#如何查看打包或者压缩文件里都有哪些文件
[[email protected] tmp]# tar tf etc.tar.gz    #带t就是查看,带f是指定报名
[[email protected] tmp]# tar tvf etc.tar.gz  #v是详细信息,就想ls -l的长格式打印
#解压tar包到指定路径
[[email protected] tmp]# tar xf etc.tar.gz -C /home/test  #-C是指定路径
#往tar包追加内容
[[email protected] tmp]# tar -r /var  -f etc.tar.gz  #实践证明不能对压缩文件进行追加
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
[[email protected] tmp]# tar -r /var/cache  -f etc.tar   #对打包的tar追加报错
tar: Removing leading `/‘ from member names
[[email protected] tmp]# tar -rP /var  -f etc.tar #追加进去了,这里用到了P选项
#释放tar包指定文件到指定目录
[[email protected] etc]# tar xvf etc.tar etc/passwd -C /tmp
[[email protected] tmp]# tar xvf etc.tar.gz etc/passwd -C /tmp  #压缩文件也是一样的方式
etc/passwd
#排除文件后再压缩文件
[[email protected] tmp]# tar zcvf /tmp/var.tar.tgz /var --exclude=*.html
[[email protected] tmp]# tar tf var.tar.tgz |grep -E "*.html"  #过滤出来的,但不是以.html结尾的
var/www/error/contact.html.var
var/www/error/HTTP_FORBIDDEN.html.var
var/www/error/HTTP_VARIANT_ALSO_VARIES.html.var

注意:

tar工具尽量使用相对路径,参数f最好放到最后

11.5 练习:

1、找出/etc下面以.conf结尾的文件,并将其复制到/home下的backup目录中、

[[email protected] tmp]# mkdir /home/backup
[[email protected] tmp]# find /etc -type f -name "*.conf" -exec cp {} /home/backup \;
[[email protected] tmp]# ls /home/backup/
10-autohint.conf                   kexec-disable.conf
10-no-sub-pixel.conf               krb5.conf
10-sub-pixel-bgr.conf              ldap.conf
10-sub-pixel-rgb.conf              ld.so.conf

2、将/home/backup下的所有文件全部打包并压缩到/tmp目录下名字为“5天以后的日期.tar.gz”

[[email protected] tmp]# tar czvf /tmp/$(date +%Y%m%d --date=‘5 days‘).tar.gz /home/backup/*
[[email protected] tmp]# date +%Y%m%d
20170604
[[email protected] tmp]# ll
total 653284
-rw-r--r--. 1 root root         0 May 20 21:33 1addf98dffa
-rw-r--r--. 1 root root         0 May 20 21:35 1ddf67dfdf
-rw-r--r--. 1 root root     71460 Jun  4 19:49 20170609.tar.gz

3、将/tmp下刚刚压缩的包解压到新建目录/tmp/test中,并打包成“当前的系统时间.tar”

[[email protected] backup]# mkdir test
[[email protected] backup]# tar xf 20170609.tar.gz -C test/
[[email protected] backup]# tar cvf ./$(date +%T).tar *
[[email protected] backup]# ls *.tar
19:56:09.tar

4、将/tmp/find.test文件追加到刚刚打好的tar包里

[[email protected] tmp]# cd /tmp
[[email protected] tmp]# touch find.test
[[email protected] tmp]# tar -r find.test -f /tmp/test/home/backup/19\:56\:09.tar
[[email protected] tmp]# tar tf /tmp/test/home/backup/19\:56\:09.tar
xcompose.conf
xim.conf
yum.conf
find.test
时间: 2024-09-29 15:50:24

打包压缩命令(十一)的相关文章

linux打包压缩命令汇总

tar命令 [[email protected] ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩.-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩

tar打包压缩命令总结

##tar命令参数 tar  zcvf   xxx.tar.gz /etc         ##前:打包压缩后的文件名,后:被打包压缩的文件或目录 tar zxvf xxx.tgz -C /etc/         ##将xxx.tgz文件解压到指定路径下 -z 调用gzip工具压缩,生成或解压.gz扩展的压缩文件 -c --create,创建tar包 -v 显示输出过程信息 -f --file对普通文件打包压缩 --exclude=x 排除不需要处理的文件或目录,不进行打包压缩 --exclu

打包压缩命令tar

之前介绍的gzip和bzip2都是压缩命令,但是它们只可以压缩单个文件.如果我们需要压缩一个目录中的所有文件的话,就需要使用tar. tar的使用简单,关键是做好参数的设置.几个常用的参数配置如下: 1)tar -jcv -f 压缩文件名.tar.bz2 被压缩文件名 第一个文件名是压缩文件名,这个需要用户自己设置,tar命令是不会默认文件名的.-jcv参数表示使用bzip2压缩方式,而且压缩的时候显示处理的文件名.-f必须和被压缩的文件名放在一起. 2)tar -jtv -f 压缩文件名  其

linux下面的打包压缩命令

tar命令 tar [-cxtzjvfpPN] 文件与目录 ....linux下面压缩之前要把一堆文件打个包再压缩,即使只有一个文件也需要打个包.例子:tar czvf 1.tar.gz hello.sh --------->创建,gzip格式,v表示压缩过程中显示压缩文件名,f 使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!,对hello.sh文件进行打包压缩 例子:tar cjvf 1.tar.gz hello.sh ---------> 创建,bzip2格式,v表示压缩过程

Linux打包压缩命令

tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件. zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的目录路径] 解压 unzip xahot.zip 不解释 linux zip命令的基本用法是: linux zip命令参数列表: -a 将

Linux之tar打包压缩命令

前言: tar命令本身没有压缩功能的,它只是把多个文件或目录打包成一个文件,并且打包出来的文件的大小比原来文件大小的总和还要大,这样会大大浪费我们的磁盘空间,在工作环境中这也不是我们想要的.想要把多个文件或目录打包成一个文件 并且进行压缩,这时,我们可以用tar命令与压缩命令相结合使用.在工作实践中tar命令通常与gzip和bzip2两种压缩格式相结合使用. 1.tar命令常用参数 参数 含义j bzip2压缩格式z gzip压缩格式c 创建一个新归档x 解除归档中的文件v 详细输出f 文件t

tar打包压缩命令

1. tar命令 用法: tar [选项...] [FILE]... GNU 'tar'将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件. 示例 tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件archive.tar. tar -tvf archive.tar # 详细列举归档文件 archive.tar中的所有文件. tar -xf archive.tar # 展开归档文件 archive.tar 作用:打包.压缩

【转】linux打包压缩命令

转自:http://www.cnblogs.com/end/archive/2011/04/20/2022614.html tar命令 [[email protected] ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩.-z :是否同时具有

【转】ubuntu打包压缩命令总结

原文网址:http://blog.csdn.net/renero/article/details/6428523 .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz 和