Ubuntu解压缩zip,tar,tar.gz,tar.bz2

ZIP

zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

我们可以使用下列的命令压缩一个目录:

# zip -r archive_name.zip directory_to_compress

下面是如果解压一个zip文档:

# unzip archive_name.zip

TAR

Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:

# tar -cvf archive_name.tar directory_to_compress

如何解包:

# tar -xvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -xvf archive_name.tar -C /tmp/extract_here/

TAR.GZ

这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress

解压缩:

# tar -zxvf archive_name.tar.gz

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

TAR.BZ2

这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress

上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/


格式: tar 选项 文件目录列表
功能: 对文件目录进行打包备份
选项:
-c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
可以这样记忆,创建新的文件是c,追加在原有文件上用r,从文件中解压出用x

-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作 ---似乎一直都要用f,不然的话,可能会不显示
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!


例如:
1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用
tar czvf this.tar.gz ./*.txt

2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用
tar xzvf this.tar.gz ./
-------------
longshuai实训:
例子1:
along@along-desktop:~$ pwd
/home/along
along@along-desktop:~$ tar czvf this.tar.gz ./*.txt
./linux代码.txt ------这里显示压缩的文件是什么,这里只有一个文件

例子2:
这时候在/home/along出现一个this.tar.gz文件,双击打开可以看见里面的文件或者用命令查看。
查看文件内容
along@along-desktop:~$ tar ztf this.tar.gz
./linux代码.txt ----显示文件内的是什么内容
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!longshuai测试到无论是否加z都是一样的结果

例子3:
下面解压
along@along-desktop:~$ tar xzfv this.tar.gz ./ --后面的./ 应该表示在文件的当前目录(./其实也可以不要的)
./linux代码.txt ---显示解压出来的文件

要解压new.tar.gz目录下的tmp文件夹
along@along-desktop:~$ tar xzvf new.tar.gz ./new/tmp


例子4:
下面介绍怎么对文件夹操作
把当前目录下的longshuai文件夹压缩到当前也目录
along@along-desktop:~$ tar cvf longshuai.tar ./longshuai <==仅打包,不压缩!
./longshuai/
./longshuai/linux代码.txt

along@along-desktop:~$ tar -czvf longshuai.tar.gz ./longshuai <==打包后,用gzip压缩!
./longshuai/
./longshuai/linux代码.txt

along@along-desktop:~$ tar -jcvf longshuai.tar.bz2 ./longshuai <==打包后,用bzip2压缩!
./longshuai/
./longshuai/linux代码.txt

# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定


例子5:
将longshuai.tar.gz 解压到 /home/along/文档 文件夹(PS当前目录是在/home/along下 )
along@along-desktop:~$ cd 文档 ---进入前目录下的文档目录
along@along-desktop:~/文档$ pwd
/home/along/文档
along@along-desktop:~/文档$ tar -xzvf ../longshuai.tar.gz --..表示上一级目录
./longshuai/
./longshuai/linux代码.txt
# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /home/along/文档 底下,并且解开 /home/along/longshuai.tar.gz ,
# 则解开的目录会在 /home/along/文档 /longshuai!

要解压new.tar.gz目录下的tmp文件夹
along@along-desktop:~$ tar xzvf new.tar.gz ./new/tmp (后面的路径如果是压缩包压缩后存在的路径就是说明要解压的文件,如果不是,则指定的是压缩后文件的存放路径)

例子6:
现创建一个文件
along@along-desktop:~/文档$ cd ..
along@along-desktop:~$ pwd
/home/along
along@along-desktop:~$ tar cvfz new.tar.gz ./new
./new/
./new/tmp/
./new/tmp/longshuai2.txt
./new/linux代码.txt

例子7:
我现在要解压new.tar.gz目录下的tmp文件夹
along@along-desktop:~$ tar xzvf new.tar.gz ./new/tmp
./new/tmp/
./new/tmp/longshuai2.txt
这样就完成了new.tar.gz下tmp文件夹的解压

例子8:
将 /home/along/文档 内的所有文件备份下来,并且保存其权限!
along@along-desktop:~$ tar zcvfp back.tar.gz ./文档
./文档/
./文档/a1/
./文档/a1/a2/
./文档/a1/a2/a3/
./文档/a1/a2/a3/a4/
./文档/test1/
./文档/test/
./文档/test/1
./文档/test/obj/
./文档/test/obj/Debug/
./文档/test/test.layout
./文档/test/bin/
./文档/test/bin/Debug/
./文档/test/test.cbp
./文档/test/main.cpp
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

例子9:
在 /home 当中,比 2010/01/01 新的文件才备份
along@along-desktop:~$ tar -N '2010/01/01' -cvfz back22.tar.gz ./文档
tar: Option --after-date: Treating date `2010/01/01' as 2010-01-01 00:00:00
tar: back22.tar.gz:无法 stat: 没有那个文件或目录
./文档/
./文档/a1/
./文档/a1/a2/
./文档/a1/a2/a3/
./文档/a1/a2/a3/a4/
./文档/test1/
./文档/test/
tar: ./文档/test/1:文件未改变;未输出
./文档/test/obj/
./文档/test/obj/Debug/
tar: ./文档/test/test.layout:文件未改变;未输出
./文档/test/bin/
./文档/test/bin/Debug/
tar: ./文档/test/test.cbp:文件未改变;未输出
./文档/test/main.cpp
tar: 由于前面延迟的错误而退出
出现问题,不知道怎么解决

例子10:
我要备份 /new, 但不要 /new/tmp文件夹
along@along-desktop:~$ tar -zcvf file.tar.gz ./new/ --exclude ./new/tmp
./new/
./new/ASasdas.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值