在我们日常生活中,我们会在各种平台上遇到存档文件,无论是 Windows、Mac 还是 Linux。各种应用程序可用于所有平台创建归档文件以及解压缩这些文件。当在 Linux 平台上工作时,我们经常需要处理存档文件。

在本文中,我们将讨论标准 Linux 发行版上可用的存档工具、它们的特点、示例等。本文分为两部分,每部分包含五个命令行存档工具(即共 10 个最佳命令行存档工具)。
什么是存档文件?
存档文件是由一个或多个计算机文件以及元数据组成的压缩文件。
存档的特点
- 数据压缩
- 加密
- 文件串联
- 自动提取
- 自动安装
- 源卷和媒体信息
- 文件分割
- 校验和
- 目录结构信息
- 其他元数据(关于数据的数据)
- 错误发现
应用领域
- 存储计算机文件系统以及元数据。
- 在本地传输文件时非常有用。
- 在网络上传输文件时非常有用。
- 软件打包应用。
标准 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命令示例。
shar命令
shar代表Shell归档,是一个shell脚本,执行它将创建文件。shar是一个自解压归档文件,是一个传统实用程序,需要Unix Bourne Shell来提取文件。shar的优点是纯文本,但潜在危险,因为它输出一个可执行文件。
shar选项
- -o:将输出保存到指定的归档文件中,在选项中指定。
- -l:限制输出大小,如选项中指定,但不拆分。
- -L:限制输出大小,如选项中指定,并拆分。
- -n:要包含在shar文件头部的归档名称。
- -a:允许自动生成头。
注意:如果使用了“-o”选项,则需要使用“-l”或“-L”选项,如果使用了“-n”选项,则需要使用“-a”选项。
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代表复制进和出。Cpio是Linux的通用文件存档工具。它被RedHat 软件包管理器(RPM)积极使用,并且在Linux内核的initramfs以及苹果电脑的安装程序(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‘的tar包。
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’的架构和功能使得恢复损坏的’gzipped tar archive’文件变得困难。建议对重要文件进行多个位置的gzip备份。
目前就介绍这么多。我们将在下一篇文章中讨论适用于Linux的其他压缩和解压缩应用程序。请继续关注Tecmint。不要忘记在下方评论区提供宝贵的反馈。
Source:
https://www.tecmint.com/command-line-archive-tools-for-linux/