Формат архива, позволяющий эффективно извлекать определенные файлы.

есть ли формат файла, который обрабатывает следующий вариант использования...

Я хотел бы создать файл tar (или что - то еще-я просто использую tar здесь b/c, это хорошо известный формат файла для хранения нескольких файлов), который можно было бы использовать, даже если бы у меня был доступ только к определенным кускам указанного файла.

например, скажем, я деготь мой mp3 и фото коллекции в 100 ГБ tar файл, а затем поместить файл в какой-то долгосрочной перспективе хранения где-то. Позже я хочу получить доступ к определенному mp3 папка. Я не хочу, чтобы загрузить весь файл 100Gb tar только, чтобы добраться до одного mp3. В самом деле, допустим, я не могу загрузить весь файл tar 100ГБ. Вместо этого я хотел бы сказать: "Дайте мне мегабайты от 10 до 19 из файла tar 100 ГБ", а затем волшебным образом извлеките mp3 из этих 10 мегабайт.

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

12
задан Jason C
09.04.2023 3:21 Количество просмотров материала 2412
Распечатать страницу

2 ответа

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

кроме того, если вы можете загружать архив только целыми блоками, а не произвольным числом байт на любой границе, было бы полезно имейте tar которое может начать и закончить чтение на определенных смещениях внутри блок. Мой собственный tar делает это, но это необычная особенность; не хватает этого, альтернатива будет head и tail блок, чтобы извлечь только часть, которую вы хотите un -tar.

1
отвечен Nicole Hamilton 2023-04-10 11:09

Я знаю, что это поздно, не уверен, что ОП в конце августа, но вот несколько советов:

вы можете создать новый раздел, используя файловую систему и скопировать все, что вы хотите хранить в этом разделе. Затем уменьшите размер раздела, чтобы сэкономить место. Тогда вы можете использовать, например,dd чтобы создать образ раздела, скажите, что это /dev/sdc3 в самом простом:

dd if=/dev/sdc3 of=backup_image.bin

для Windows Google для "dd для windows" или найдите эквивалентную программу, которая может создать байтовый образ раздела или устройства.

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

sudo mkdir /media/backup
sudo mount /path/to/backup_image.bin /media/backup

для Windows, Google для "образ раздела для монтирования windows".

вы будете иметь полный доступ к данным и только минимальное количество читает необходимо для поддержки навигации по файловой системе и доступа к этому файлу.

другой, более очевидный вариант-просто не объединять файлы в один архивный файл. Создайте обычную файловую систему на вашем долгосрочном хранилище и просто скопируйте файлы в нее. Файловые системы уже предоставляют средства для доступа к определенным файлам без доступа к ненужным данным, возможно, Вам не придется изобретать колесо.

также собственнические форматы как одно вы опишите, например, программное обеспечение для резервного копирования, как Acronis резервное копирование данных, подключить сетевые диски или еще куда, в ".TIB " файлы, которые можно просматривать (и извлекать данные) без необходимости чтения всего файла. Я не знаю, поддерживает ли Acronis просмотр резервных копий файловой системы Linux/OSX, но я знаю, что он поддерживает этот тип просмотра резервных копий FAT32 и NTFS. Я уверен, что есть и другие.

1
отвечен Jason C 2023-04-10 13:26

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх