У меня есть набор файлов, в которых есть некоторые жесткие ссылки, указывающие на некоторые из файлов. Для примера:Apache Commons Сжатие не удается добавить жесткую ссылку в tar
/tmp/test/file1
/tmp/test/file1_Link
file1
представляет собой файл с размером 1 Мбайт. file1_Link
это жесткая ссылка указывает на file1
Когда я использую команду Unix tar
очернить эти оба файла, полученный архив имеет размер 1 МБ (mytar.tar
)
tar -cvf ../mytar.tar .
-rw-r--r-- 1 bsarraf 189060905 1.0M Feb 11 22:06 mytar.tar
-rw-r--r-- 1 bsarraf 189060905 2.0M Feb 11 22:10 files.tar
Однако, когда я использую apache commons сжимает и добавляет все файлы в tar-файл, я получаю tar размером 2 МБ (files.tar
).
Это означает, что в tar один и тот же файл был добавлен дважды.
Как добавить файл жесткой ссылки в tar как жесткую ссылку другого файла?
Вы не показали свой код. Я считаю, что вам приходится обнаруживать жесткие ссылки и самостоятельно обрабатывать создание ссылок (в файле tar). 'org.apache.commons.compress.archivers.tar.TarConstants' содержит константы типов для мягких (' LF_SYMLINK') и жестких ('LF_LINK') ссылок. –
Спасибо @JimGarrison за ваш ответ. Я смог решить проблему с каким-то экспериментом. –