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