Требуется ли больше времени для удаления файлов из большого архива tar zip и rar, чем из меньшего? Я бы подумал, что для удаления файла из архива все данные, которые существуют после удаленного файла, должны быть перезаписаны в архив, что займет больше времени, в отличие от меньшего архива, где объем данных, подлежащих перезаписи -записать меньше ... если нет, как эти архивы могут удалять данные из середины архива без перезаписи остальных данных?
3 ответа
Ты совершенно прав. Это немного зависит от точного формата архива и используемого сжатия, но, как правило, как минимум, все данные, хранящиеся "после" удаленного файла, должны быть переписаны.
tar не поддерживает модификацию сжатых архивных файлов. затем вы должны полностью переписать архив tar, временно не распаковав его. это зависит от формата архива tar.
Что касается @David (предыдущий постер), я чувствую, что данный ответ несколько отсутствует.
Давайте проанализируем вопросы:
1. Требуется ли больше времени для удаления файлов из большого архива tar zip и rar, чем из меньшего?
Да, это так, потому что архив больше. Однако это абсурдное обобщение. Учитывая два основных фактора, которые могут повлиять на это: размер архива и количество файлов в архиве.
Если в архиве только один файл, то, по сути, вы делаете удаление самого архива. Однако, если файлов много, программы архивирования (и форматы) могут по-разному обрабатывать файлы.
Tar, например, должен был представлять собой последовательный формат хранения файлов для хранения ленточных архивов. Один из недостатков заключается в том, что, поскольку "оглавление" отсутствует, для поиска папки или файла необходимо выполнить итерацию по всему архиву.
Rar, с другой стороны, имеет возможность создавать сплошные файлы. Надежный файл - это архив, в котором вся информация ранее рассматривалась как большой поток. Это означает, что всякий раз, когда кто-то хочет получить доступ, отредактировать, добавить или удалить файл, весь архив сначала должен быть распакован, а затем повторно сжат.
И теперь мы приходим к чему-то новому: степень сжатия. Если файлы сильно сжаты, для доступа к ним потребуется больше времени, независимо от алгоритма. Хотя это зависит от типа сжимаемых файлов (текстовые файлы (не .docx) имеют высокую избыточность, поэтому их можно быстро распаковать / повторно сжать)
2. Как эти архивы могут удалять данные из середины архива без перезаписи остальных данных?
Рассуждения перед этим вопросом не всегда верны, за исключением rar "солидного" архива.
За исключением Tar (по причинам, указанным в ссылке на Википедию), и zip, и rar имеют что-то вроде "оглавления", которое позволяет архивам выборочно извлекать данные. Все это делается без повторного сжатия существующих данных, хотя некоторые вещи необходимо изменить внутри архива, чтобы сообщить ему, что файл больше не существует.
Думайте об архиве как о маленькой коробке, где каждый файл забит и сжат, чтобы соответствовать этому. Как только вы берете один предмет, коробка сжимается, чтобы заполнить пространство.