在我们面对的日常工作中,各种平台上的归档文件有可能是Windows、Mac或Linux等类型。几款应用软件可供所有平台创建归档文件以及对归档文件进行解压缩。说到在Linux平台上工作,我们需要非常频繁地处理归档文件。
Linux命令行归档工具
我们在本文中将探讨标准Linux发行版上可供使用的归档工具、功能特性以及实例等。文章分上下两部分,每个部分各自介绍了五款命令行归档工具(也就是说,总共介绍了十款***的Linux命令行工具)。
何谓归档文件
归档文件是经过压缩的文件,它由一个或多个计算机文件以及元数据组成。
归档的功能特性
- 数据压缩
- 加密
- 文件并置
- 自动解压
- 自动安装
- 源卷和介质信息
- File spanning
- 校验和
- 目录结构信息
- 其他元数据(关于数据的数据)
- 错误发现
应用领域
- 存储计算机文件系统以及元数据。
- 适用于本地传送文件。
- 适用于通过互联网传送文件。
- 软件包装应用程序。
标准Linux发行版上实用的归档应用软件包括如下:
1. tar命令
tar是标准的UNIX/Linux归档应用软件工具。在早期阶段,它曾经是一款磁带归档软件,后来慢慢发展成了通用归档软件包,能够处理各种类型的归档文件。tar可接受许多带选项的归档过滤器。
tar选项
- -A:将tar文件添加到现有归档的末尾。
- -c:创建一个新的归档文件。
- -d:使用指定的文件系统比较归档。
- -j:用bzip压缩归档。
- -r:将文件添加到现有归档的末尾。
- -t:列出现有归档的内容。
- -u:更新归档。
- -x:从现有归档解压文件。
- -z:用gzip压缩归档。
- –delete:从现有归档删除文件。
tar实例
创建一个tar归档文件。
- # tar -zcvf name_of_tar.tar.gz /path/to/folder
对tar归档文件进行解压缩。
- # tar -zxvf Name_of_tar_file.tar.gz
想了解更详细的例子,请参阅《Linux下的18个Tar命令实例》一文:http://www.tecmint.com/18-tar-command-examples-in-linux/。
2. shar命令
shar代表外壳归档,这是一个外壳脚本,执行该脚本就可以创建文档。shar是自解压归档文件,这是一款老式实用工具,需要Unix Bourne外壳来解压文件。shar的优势在于采用明文格式,不过它可能很危险,因为它输出的是可执行文件。
shar选项
- -o:将输出保存到选项中指定的归档文档。
- -l:限制选项中指定的输出文件大小,但不分割输入文件。
- -L:限制在选项中指定的输出文件大小,但分割输入文件。
- -n:归档名称添加到shar文件的头部中。
- -a:允许自动生成文件头部。
注意:如果使用了“-l”或“-L”选项,就要用“-o”选项;如果使用了“-a”选项,就要用“-n”选项。
shar实例
创建一个shar归档文件。
- # shar file_name.extension > filename.shar
解压shar归档文件。
- # unshar file_name.shar
3. ar命令
ar是创建和处理归档的实用工具,主要用于二进制对象文件库。ar代表归档工具,可用于归档任何用途的各种归档,但是基本上已被“tar”取而代之;现如今,它只用于创建和更新静态库文件。
ar选项
- -d:从归档中删除模块。
- -m:移动归档中的成员。
- -p:显示归档的指定成员的内容。
- -q:快速添加。
- -r:将文件成员插入到归档。
- -s:为归档添加索引。
- -a:将新文件添加到归档的现有成员。
ar实例
使用“ar”工具创建一个归档,静态库为“libmath.a”,两个对象文件为“substraction”和“division”,具体如下。
- # ar cr libmath.a substraction.o division.o
解压“ar”归档文件。
- # ar x libmath.a
4. cpio
cpio代表Copy in and out(拷贝输入和输出)。cpio是一款面向Linux的通用文件归档工具。它被红帽软件包管理器(RPM)积极使用,用于Linux内核的initramfs(初始RAM文件系统)中,还是苹果公司的安装工具(pax)中的一个重要归档工具。
cpio选项
- -0:读取由空字符终止而不是由换行符终止的文件名列表。
- -a:复位访问时间。
- -A:添加到现有归档。
- -b:交换。
- -d:创建目录。
cpio实例
创建一个“cpio”归档文件。
- # cd tecmint
- # ls
- file1.o file2.o file3.o
- # ls | cpio -ov > /path/to/output_folder/obj.cpio
解压cpio归档文件。
- # cpio -idv < /path/to folder/obj.cpio
5. gzip
gzip是一种标准的、广泛应用的文件压缩和解压缩实用工具。gzip允许文件并置。用gzip压缩文件,可以得到格式为“*.tar.gz”或“*.tgz”的tarball打包文件。
gzip选项
- –stdout:将输出写到标准输出设备上。
- –to-stdout:将输出写到标准输出设备上。
- –decompress:解压缩文件。
- –uncompress:解压缩文件。
- -d:解压缩文件。
- -f:强行压缩/解压缩。
gzip实例
创建一个“gzip”归档文件。
- # tar -cvzf name_of_archive.tar.gz /path/to/folder
解压缩“gzip”归档文件。
- # gunzip file_name.tar.gz
执行上面这个命令后必须紧跟着执行下面这个命令。
- # tar -xvf file_name.tar
注意:由于gzip的架构和功能,很难恢复受损坏的用gzip处理的tar归档文件。所以建议在不同的地方对用gzip处理的重要文件做几个备份。
暂且介绍这么多。我们会在下一篇文章中介绍另外面向Linux的压缩和解压缩应用软件。敬请关注。
英文:http://www.tecmint.com/command-line-archive-tools-for-linux/