1

Я хотел бы иметь возможность объединить несколько файлов в один файл и иметь доступ к внутренним файлам без необходимости распаковки. Что-то вроде универсального бинарника для Mac.

Существует ли такой формат файла?

редактировать
Некоторые дальнейшие исследования помогли мне уточнить, что я хочу: однофайловая файловая система. На данный момент кажется, что единственным вариантом является смонтированный файл ISO. Тем не менее, лучшие предложения всегда приветствуются.

4 ответа4

4

Распаковка / распаковка архива явно не обязательна. Вы хотите FUSE (Файловая система в пространстве пользователя), которая позволяет mount архивные файлы.

Любая необходимая распаковка / перепаковка выполняется в файловой системе, поэтому она прозрачна для программ, которые вы используете для доступа или изменения файлов внутри смонтированного архива.

Одним из таких проектов является archivemount (ссылка на Википедию, исходные архивы). Этот и другие проекты перечислены на вики- странице Sourceforge ArchiveFileSystems. Различные проекты используют разные библиотеки в качестве бэкэндов для выполнения реальной работы.

Некоторые проекты, похоже, поддерживают только операции чтения, но многие из них молодые и могут включать функции записи позже.

  • 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 Explorer для просмотра .zip-файлов.

4

Лучше всего смотреть на сжатые форматы с нулевым сжатием. Вот пример использования командной строки 7zip в Linux для этой цели (хотя это, вероятно, не установлено по умолчанию)

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/ (слава Zoredache от serverfault)

0

Вы можете посмотреть, как это делает klik: http://klik.atekon.de/wiki/index.php/Main_Page. Он очень похож на dmg для Mac и использует FUSE.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .