Чи розмір архіву tar, zip і rar ефекту часу, необхідного для видалення файлу з нього?


1

Чи потрібно більше часу для видалення файлів з великого архіву tar zip і rar, ніж меншого? Я думаю, що для видалення файлу з архіву всі дані, які існують після видалення файлу, повинні бути переписані в архів, що займе більше часу, ніж менший архів, де кількість даних для повторного - писати менше ... якщо ні, то як ці архіви здатні видаляти дані з середини архіву без повторного запису решти даних?

Відповіді:


1

Ви точно правильно. Це залежить від точного формату архіву та стиснення, що використовується, але, як правило, всі дані, що зберігаються "після" видаленого файлу, повинні бути переписані.


Щоб бути цілком чесним, ви також не пояснили, чому дані, що зберігаються, повинні бути переписані. Можливо, це словниковий запар, оскільки перезапис може означати різні речі для різних людей.
Doktoro Reichard

0

tar не підтримує змінені стислі архівні файли. Потім ви повинні повністю переписати tar-архів, тимчасово зберегти незжатий. це залежить від формату архіву tar.


-1

Що стосується @David (попередній плакат), я вважаю, що дана відповідь дещо відсутня.

Давайте проаналізуємо питання:

1. Чи потрібно більше часу для видалення файлів з великого архіву tar zip та rar, ніж меншого?

Так, тому що архів більший. Однак це абсурдне узагальнення. Розглядаючи два основні фактори, які можуть вплинути на це: розмір архіву та кількість архівуваних файлів.

Якщо в архіві є тільки один файл, то, по суті, ви робите вилучення самого архіву. Проте, якщо існує багато файлів, програми архівування (і формати) мають різні способи обробки файлів.

Тар, наприклад, був означає бути послідовний формат зберігання файлів для зберігання архівів стрічок. Один з недоліків полягає в тому, що, оскільки не існує "змісту", він повинен пройти через весь архів, щоб знайти папку або файл.

Rar, з іншого боку, має можливість зробити тверда речовина файлів. Суцільний файл - це архів, де всю інформацію раніше обробляли як великий потік. Це означає, що всякий раз, коли хтось хоче отримати доступ, редагувати, додати або видалити файл, спочатку потрібно буде розпакувати весь архів, а потім повторно згорнути.

А тепер ми приходимо до чогось нового: коефіцієнт стиснення. Якщо файли дуже стислі, то для доступу до них знадобиться більше часу, незалежно від алгоритму. Хоча це залежить від типу стиснутих файлів (текстові файли (не .docx) мають високу надмірність, тому їх можна швидко декомпресувати.

2. Як ці архіви здатні видаляти дані з середини архіву без повторного запису решти даних?

Міркування перед тим, як це питання не завжди дійсне, за винятком rar "твердого" архіву.

Заборонивши Тар (з причин, показаних у посиланнях Вікіпедії), обидва zip і rar мають щось "зміст", що дозволяє архівам вибірково витягувати дані. Все це робиться без повторного стиснення існуючих даних, хоча деякі речі повинні бути змінені всередині архіву, щоб повідомити йому, що файл більше не існує.

Думайте про архів як про маленьку скриньку, де кожен файл забитий і стиснутий, щоб вмістити його. Як тільки ви візьмете одну позицію, вікно пересувається, щоб заповнити простір.


Ви ніколи не відповідали на питання, яке ви поставили в "2". Як це можливо? Питання не стосувалося видобутку або рекомпресії, а приблизно переписування .
David Schwartz

Я насправді, якщо ви читаєте про "зміст". По суті, кожен файл всередині архіву стискається окремо. Єдине переписання, яке може статися, це лише перенесення файлів, що приходять після (вміст) на позиції, зайняті видаленим файлом. Але це тривіально, оскільки вам не потрібно нічого змінювати в стислих файлах. Найкраще порівняння буде видалення рядка тексту всередині документа, де кожен рядок є файлом. Вам не потрібно було повторно записувати всі інші файли, щоб видалити один з них (за винятком rar 'solid').
Doktoro Reichard

Отже, якщо файл з'являється на початку архіву, то вам доведеться переписати весь архів, так? Як це тривіально?
David Schwartz

@David Це тривіально в тому сенсі, що вам не потрібно переробляти інші файли, всі важкі роботи вже зроблені. Знову ж таки, я маю на увазі вашу аналогію: якщо ви вилучите рядок в будь-якому місці документа, вам не потрібно буде знову писати всі рядки.
Doktoro Reichard
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.