У мене є сотні подібних великих файлів (по 30 мегабайт кожен), які я хочу стиснути. Кожна пара файлів має 99% одних і тих же даних (менше 1% різниці), тому я очікую мати не більше 40-50 мегабайт архіву.
Один файл може бути стиснутий від 30 МБ до 13-15 МБ (з xz -1, gz -1, bzip2 -1), але при стисненні два або більше файлів , які я хочу мати архів з розміром 13-15MB + N*0.3MBде N є кількістю файлів.
Під час використання tar(для створення суцільного архіву) та xz -6(для того, щоб словник стиснення був більшим, ніж один файл - Оновлення - цього було недостатньо! ), Я все ще маю архів із розміром N*13MB.
Я думаю, що обидва gzipі bzip2мені не допоможуть, оскільки у них словник менше 1 Мб, а мій потік tar має повтори кожні 30 Мб.
Як я можу архівувати свою проблему в сучасному Linux за допомогою стандартних інструментів?
Чи можна налаштувати xzна стиснення швидко, але використовувати словник розміром більше 30-60 Мб?
Оновлення : чи зробив трюк із tar c input_directory | xz --lzma2=dict=128M,mode=fast,mf=hc4 --memory=2G > compressed.tar.xz. Не впевнений у необхідності mf=hc4та --memory=2Gваріантах; але dict=128Mвстановіть словник досить великим (більший, ніж один файл), і mode=fastзробіть процес трохи швидшим, ніж -e.
xz -1 --memory=2Gне допоміг, протестували на 2 та 4 файлах із набору.