Просматриваемый сжатый архив файловой системы с полными атрибутами?

Просматриваемый сжатый архив файловой системы с полными атрибутами?

Возможно, вариация всего вопроса будет выглядеть так:Существуют ли другие инструменты архивации, кроме tarтех, которые сохраняют права доступа к файлам Linux и флаги пользователей/групп?

Я хочу создать архивы дерева каталогов на моем ubuntu box. Деревья каталогов большие, первый запуск дал tar cvpzf archive.tgz /home/foo/barархив на 5 ГБ.

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

Меня вполне устраивает архив на 5 ГБ, однако, чтобы заглянуть внутрь этого архива — поскольку это сжатый tar-архив — сначала придется распаковать все 5 ГБ! (По крайней мере, так кажется при открытии архива с помощью просмотрщика архивов — буду рад, если меня поправят.)

Поэтому мне нужен способ «резервного копирования» каталога (дерева), сохраняя при этом все атрибуты и права файловой системы, а также создавая архив с «индексом», который не нужно распаковывать для просмотра его содержимого.


Редактировать: Указываю, что я считаю архивом, послеОтвет Уолли:

Архив — это либо отдельный файл, либо (небольшой) набор файлов, содержащийполныйиполныйинформация внутри этого файла/ов. То есть, он может находиться в любой файловой системе (если позволяет размер), его можно записать на DVD, вы можете splitего (после чего смысл этого вопроса действительно теряется - но все же), ...

решение1

Знаете ли вы о функции t tar для распечатки содержимого архива? Вы можете использовать ее для сжатого gzip архива следующим образом:

tar ztvf archive.tgz

И он выведет файлы в формате длинного списка, включая временные метки и размеры. Оказывается, если вы используете две опции v при создании архива, он выведет длинный список файлов (вместо простого их перечисления) по мере их добавления в архив, поэтому вы можете сделать что-то вроде этого, чтобы автоматически создать индекс во время резервного копирования за один раз:

tar cvvpzf archive.tgz /home/foo/bar > archive.tgz.index

Обратите внимание на использование двух опций v. Многие другие команды позволяют увеличить подробность таким образом (например, ssh).

решение2

Я сталкивался с этой проблемой много раз. Вот что я выяснил.

Почтовый индекс
.zipфайлы поддерживают разрешения unix и символические ссылки, если они созданы с помощью утилиты zip, установленной в большинстве систем Linux. Однако она не поддерживаетвсеподдерживаемые расширения tar, такие как жесткие ссылки и расширенные атрибуты. Но вы можете извлекать файлы из архивов ZIP без предварительной распаковки всего архива до этой точки, так что это победа.

СквошФС
Если вы ищете монтируемую сжатую файловую систему, доступную только для чтения, то лучшим претендентом на данный момент являетсяСквошФС. Но есть одна загвоздка... ну, на самом деле, несколько загвоздок. А именно:

  • SquashFS — относительно новый инструмент, и его поддержка не столь широка, как у таких инструментов, как tar.
  • Существуют два формата на диске, созданные двумя разными версиями инструмента, которые несовместимы друг с другом. Убедитесь, что вы выбрали правильный.
  • Драйвера FUSE нет — для монтирования образов вам понадобится поддержка ядра вашей версии squashfs.
  • Вспомогательные инструменты ( mksquashfsи unsquashfs) довольно просты и не поддерживают широкий спектр опций, которые вы видите в tar.
  • Документации не так уж много.

решение3

Основная проблема, по-видимому, заключается в том, что

... чтобы заглянуть внутрь этого архива ... сначала нужно распаковать все 5 ГБ! (По крайней мере, так кажется при открытии архива с помощью просмотрщика ...)

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

Чтобы извлечь один или несколько файлов, tarраспакует весь архив, но отбросит все, кроме файлов, перечисленных в качестве аргументов.
Аналогичным образом, перечисление имен файлов с помощью -t( --list) требует распаковки всего архива, но отбрасывает все содержимое файла.

Чтобы понять, почему в начале архива нет индекса, учтите, что tarизначально он был создан для работы с магнитными ленточными устройствами; отсюда и название tar- как ленточный архиватор. На ленте вы хотите добавить следующий файл в конец, вы не хотите перематывать в начало для записи индекса.

решение4

Возможно, вам стоит обратить внимание на fusecompress, который «предоставляет монтируемую файловую систему Linux, которая прозрачно сжимает свое содержимое. Файлы, хранящиеся в этой файловой системе, сжимаются «на лету», а Fuse позволяет создавать прозрачный интерфейс между сжатыми файлами и пользовательскими приложениями».

Пользователь может получить доступ к сохраненным файлам так, как будто они не сжаты.

Но если у вас есть место, почему бы просто не скопировать дерево каталогов? Проще.

Другой вариант — скопировать деревья каталогов на USB-накопитель. Это обеспечит легкий доступ и защиту от сбоя диска.

Связанный контент