归档目录的最简单格式

Simplest format to archive a directory

我有一个脚本需要在多个平台和机器上运行。其中一些机器没有任何可用的归档软件(例如 zip,tar)。我无法在这些机器上下载任何软件。

该脚本创建一个包含输出文件的目录。我需要将所有这些文件打包成一个文件,以便我可以轻松下载它。

最简单的归档格式是什么,这样我就可以轻松地在脚本中使用我自己的 impl。它不一定支持压缩。

我可以临时编一些东西,例如

file1  base64EncodedContents
dir1/file1 base64EncodedContents

等等

但是,如果已经存在,那么我就不必自己打包和拆包,只打包,这会很好。如果它是 zip 兼容的,那么奖励积分,这样我就可以尝试压缩它,如果可能的话,它们会在没有压缩的情况下实现我自己的,而不必担心它在另一边。

tar 存档格式非常简单 - 简单到我能够在几个小时内在 powershell 中实现 tar 存档器。

它由一系列文件header、文件数据、文件header、文件数据等组成

header 是纯 ascii,因此不需要任何位操作 - 您可以直接附加字符串。一旦你写完 header,你就可以附加文件字节,并用 nil 字符填充它直到它是 512 字节的倍数。然后重复下一个文件。

维基百科有关于确切格式的更多详细信息:https://en.wikipedia.org/wiki/Tar_(computing)