Как сказал @Greg, ZIP не поддерживает жесткие ссылки.
Но если я правильно понял, ваша цель - уменьшить размер сжатого архива. Итак, давайте подумаем об альтернативном решении.
Позволяет запускать простые тесты для проверки степени сжатия различных архивных библиотек.
Я создал два одинаковых двоичных файла и сжал их с помощью ZIP, BZ2, RAR и 7z.
8641969 test.bin
8641969 test2.bin
Первый раз был сжат только один файл.
Второй раз были сжаты два файла:
ZIP :
$zip -9 test1.zip test.bin
$zip -9 test2.zip test.bin test2.bin
8636837 test1.zip
17273654 test2.zip
BZIP2
$export BZIP=--fast
$tar cjf test1.tbz test.bin
$tar cjf test2.tbz test.bin test2.bin
8694997 test1.tbz
17389167 test2.tbz
7z
$7z a -mx=9 test1.7z test.bin
$7z a -mx=9 test2.7z test.bin test2.bin
8705285 test1.7z
8707054 test2.7z
RAR
$rar a -m5 test1.rar test.bin
$rar a -m5 test2.rar test.bin test2.bin
8649970 test1.rar
17299916 test2.rar
Заключение :
Кажется, что только 7z делает работу хорошо.
Попробуйте использовать его в своем приложении.
Конечно, вам нужно будет провести больше тестов в вашей среде с вашими файлами, чтобы увидеть, действительно ли это то, что вам нужно. Также вы можете поиграть с опциями, чтобы увидеть, на каком уровне сжатия вы получаете лучший коэффициент сжатия / баланс скорости.