.png)
У меня возникла проблема с tarball-архивом, созданным на сервере SuSe 10.3.
Размер файла .tar составляет 6,5 ГБ, но если я распакую его в Ubuntu 9.10, то размер полученной папки составит всего 1,5 ГБ.
используемые команды: tar cvf
для упаковки, tar xvf
для распаковки.
Может быть, кто-то знает, как это можно исправить, было бы здорово.
Ваше здоровье.
решение1
если у вас есть символические или жесткие ссылки в каталоге, то tar может добавлять каждую из них как отдельный файл. Когда вы затем распаковываете его в файловой системе Linux, он восстановит ссылки, и тогда все будет занимать меньше места.
Tar не предназначен для сжатия, а только для создания файла, содержащего несколько файлов. Вот почему вы обычно видите его пропущенным через gzip или bzip.
решение2
Вы можете получить лучшие результаты с помощью cpio, он гораздо больше подходит для больших резервных копий и может быть написан для корректной обработки символических ссылок и специальных файлов.
решение3
Если у вас много маленьких файлов, то вы можете столкнуться с блокировкой и накладными расходами каталогов в tar. Важной информацией является размер исходного каталога. tar мог сжать пустое пространство в файлах, не выделяя для них блоки. Попробуйте --apparent-size
опцию du
.
Вы можете попробовать сравнить список файлов, сгенерированных с помощью, tar -tf
с извлеченными файлами. Извлеките с помощью, tar -xf
чтобы увидеть, возникают ли какие-либо ошибки при извлечении. Попробуйте заново создать копию tar, чтобы увидеть, насколько она велика.
решение4
Я бы посоветовал попробоватьпакс. По крайней мере, так это называется в CentOS. Если не ошибаюсь, он может обрабатывать поврежденные файлы TAR, пропуская недействительные элементы tar. В противном случае я предлагаю вам поэкспериментировать сtarfileмодуль стандартной библиотеки Python и сделать это программно. Я делал что-то подобное несколько лет назад.