Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59290
  • 博文数量: 10
  • 博客积分: 20
  • 博客等级: 民兵
  • 技术积分: 177
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-07 23:47
个人简介

读书,运动,编程,生活有此三者足矣

文章分类

全部博文(10)

文章存档

2013年(10)

我的朋友

分类: LINUX

2013-03-31 00:50:50

之前用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 文件,所以可以轻易打开。

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

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


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

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

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

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

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

上一篇:迟到的开篇辞

下一篇:Shell 编程(I)

给主人留下些什么吧!~~