我希望能够将多个文件合并为一个文件,并且能够访问内部文件而无需进行任何解压。类似于 Mac 的通用二进制文件。
是否存在这样的文件格式?
编辑
进一步的研究帮助我明确了我想要什么:单文件系统。此时唯一的选择似乎是安装 ISO 文件。但是,我们始终欢迎更好的建议。
答案1
明确地解压/解压缩档案并不是绝对必要的。你需要一个 FUSE (用户空间中的文件系统) 可让您mount
存档文件。
任何必要的解包/重新打包都在文件系统中完成,因此对于您用来访问或修改已安装存档内的文件的程序来说是透明的。
其中一个项目是archivemount
(维基百科链接,源代码包)。它和其他各种项目都列在Sourceforge的wiki上存档文件系统页面。不同的项目使用不同的库作为后端来完成实际工作。
有些项目似乎只支持读取操作,但许多项目还很年轻,可能会在以后包含写入功能。
archivemount
用途libarchive
,访问 cpio、.tar.gz、.tar.bz2 档案fuse-zip
使用libzip
,包括对 .zip 档案的写入支持avfs
(虚拟文件系统)“支持软盘、tar 和 gzip 文件、zip、bzip2、ar 和 rar 文件、ftp 会话、http、webdav、rsh/rcp、ssh/scp”等。
理想情况下,用于档案的 FUSE 文件系统的工作方式有点像 Windows 资源管理器对浏览 .zip 文件的支持。
答案2
最好的办法是查看零压缩压缩格式。下面是使用 Linux 中的命令行 7zip 的示例(尽管默认情况下可能未安装)
7z a -mx0 archive folder
要获得更多答案,请查看 stackoverflow 上发布的类似问题:
https://stackoverflow.com/questions/79136/how-do-i-create-a-container-file
答案3
您可以使用循环设备:http://en.wikipedia.org/wiki/Loop_device。 如何:http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/(serverfault 对 Zoredache 表示赞赏)
答案4
你可以看看 klik 是如何做到的:http://klik.atekon.de/wiki/index.php/Main_Page 它与 Mac 的 dmg 非常相似,并且使用 FUSE。