Linux的5个最佳命令行存档工具-第1部分

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

Linux Command Line Archive Tools

在本文中,我们将讨论标准 Linux 发行版上可用的存档工具、它们的特点、示例等。本文分为两部分,每部分包含五个命令行存档工具(即共 10 个最佳命令行存档工具)。

什么是存档文件?

存档文件是由一个或多个计算机文件以及元数据组成的压缩文件。

存档的特点

  1. 数据压缩
  2. 加密
  3. 文件串联
  4. 自动提取
  5. 自动安装
  6. 源卷和媒体信息
  7. 文件分割
  8. 校验和
  9. 目录结构信息
  10. 其他元数据(关于数据的数据)
  11. 错误发现

应用领域

  1. 存储计算机文件系统以及元数据。
  2. 在本地传输文件时非常有用。
  3. 在网络上传输文件时非常有用。
  4. 软件打包应用。

标准 Linux 发行版上有用的存档应用程序如下:

1. tar命令

tar是标准的UNIX/Linux归档应用工具。在早期,它曾经是一个磁带归档程序,逐渐发展成为通用归档包,能够处理各种类型的归档文件。tar接受许多带有选项的归档过滤器。

tar选项

  1. -A:将tar文件附加到现有归档中。
  2. -c:创建新的归档文件。
  3. -d:与指定文件系统比较归档。
  4. -j:对归档进行bzip压缩
  5. -r:将文件附加到现有归档中。
  6. -t:列出现有归档的内容。
  7. -u:更新归档
  8. -x:从现有归档中提取文件。
  9. -z:对归档进行gzip压缩
  10. –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选项

  1. -o:将输出保存到指定的归档文件中,在选项中指定。
  2. -l:限制输出大小,如选项中指定,但不拆分。
  3. -L:限制输出大小,如选项中指定,并拆分。
  4. -n:要包含在shar文件头部的归档名称。
  5. -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选项

  1. -d:从存档中删除模块。
  2. -m:移动存档中的成员。
  3. -p:打印存档的指定成员。
  4. -q:快速追加。
  5. -r:将文件成员插入存档。
  6. -s:向存档添加索引。
  7. -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 选项

  1. -0:读取以空字符而不是换行符终止的文件名列表。
  2. -a:重置访问时间。
  3. -A:追加。
  4. -b:交换。
  5. -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选项

  1. –stdout:在标准输出上产生输出。
  2. –to-stdout:在标准输出上产生输出。
  3. –decompress:解压文件。
  4. –uncompress:解压文件。
  5. -d:解压文件。
  6. -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/