之前用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 了。
阅读(1885) | 评论(0) | 转发(0) |