Linux命令行下文件压缩,解压,分割以及合并

之前用Linux做压缩的时候完全不会用命令行解决,只好在GUI工具的帮助下工作,真是郁闷,于是简单研究了几个基本命令。

首先是归档命令的大佬tar:
$ tar -cf archive.tar foo bar bla   #生成归档文件
$ tar -tvf archive.tar             #列出包中文件
$ tar -xf archive.tar              #解包
除此之外,tar还支持归档文件的更新 -u 选项,但是不怎么常用。tar还支持标准输入输出,具体的作用在下面的命令中。

最有用的压缩命令就是gzip和gunzip了:
$ gzip -d foo.gz   #解压
$ gunzip foo.gz   #解压
$ gzip -c foo > foo.gz #压缩文件
$ zcat foo.gz   #列出文件

同tar一样,gzip也可以从标准输入输出接受文件。

tar和gzip可以协作,不过tar本身提供了 -z 选项,透明地调用了gzip和gunzip,详见man。

与gzip类似的有:
foo.Z    compress    uncompress
foo.zip    zip    unzip
foo.bz[2]    bzip[2]    bunzip[2]
类似的在tar中调用的参数是 -Z (none) -j

有意思的是 .deb 文件其实就是一个 .tar.gz 文件,所以可以轻易打开。

更正:.deb 的确是归档文件,但不是 .tar.gz, 必须用 ar -xfv *.deb 命令解压

关于文件的分割:
首先一般而言分割的都是压缩文件,分割命令是

$ split -b [maxsize] file PREFIX_   #maxsize可以用m, g, k等表示,单位是字节,最后部分是前缀,分割之后的文件名是前缀+[a-z][a-z]
而连接命令当然是cat
$ cat PREFIX_* > file    #
这时,tar等命令接受标准输入输出的功能就体现出来了,我们可以直接把cat的输出传递给gunzip等程序。

此外还不得不提到可恶的专有格式RAR,当然建议大家不使用RAR,如果一旦用了,也是有办法的,可以下载一些相关的工具:
http://www.rarsoft.com/download.htm

Debian 的软件仓库里有一个开源的unrar程序也可用,具体见手册吧,作者对这类专有格式没有兴趣。

补充一下这篇文章,有两个很有用的东西忘记写了,今天补上吧:

tar 解包时有一个参数是 -C,这个参数很有用,可以把归档文件解到相应的目录。

另一个问题是文件属性的保存。tar会自动保存文件的属性,解包的时候,超级用户默认为 -p 即保留权限等属性,而普通用户要自己江上这个参数。7z 固然有很高的压缩率,却不能保存文件属性,使用 7z 就只好先 tar 然后在 7z 了。

阅读(36) | 评论(0) | 转发(0) |
0

上一篇:迟到的开篇辞

下一篇:Shell 编程(I)

评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值