Поврежденный tar (Результирующая папка меньше, чем упакованный файл)

У меня проблема с тарболом, созданным в версии SuSe 10.3 Server.

Файл.tar имеет размер 6,5 ГБ, но если я распаковываю его в Ubuntu 9.10, результирующая папка имеет размер только 1,5 ГБ.

используемые команды: tar cvf для упаковки, tar xvf для распаковки.

Возможно, кто-то знает, как это можно исправить, было бы здорово.

Приветствия.

4 ответа

Если у вас есть символические или жесткие ссылки в каталоге, то tar может добавлять каждую из них как отдельный файл. Когда вы затем распаковываете его в файловой системе Linux, он восстанавливает ссылки, а затем все занимает меньше места.

Tar не для сжатия, просто для создания файла, содержащего несколько файлов. Вот почему вы обычно находите это через gzip или bzip.

Я бы предложил попробовать Пакс. По крайней мере, так называется CentOS. IIRC, он может обрабатывать поврежденные файлы TAR, пропуская недействительные члены tar. В противном случае я предлагаю вам поэкспериментировать с модулем tarfile стандартной библиотеки Python и сделать это программно. Я сделал что-то подобное несколько лет назад.

У вас могут быть лучшие результаты с cpio, он гораздо больше подходит для больших резервных копий и может быть написан для правильной обработки ссылок и специальных файлов.

Если у вас много маленьких файлов, вы можете столкнуться с блокировкой и перегрузкой каталогов в tar. Важная информация - насколько велика была исходная директория. tar может сжать пустое пространство в файлах, не выделяя для них блоки. Попробуйте --apparent-size возможность du,

Вы можете попробовать сравнить список файлов, сгенерированных tar -tf к извлеченным файлам. Извлечь с tar -xf чтобы увидеть, если вы получаете какие-либо ошибки при извлечении. Попробуйте воссоздать копию tar, чтобы увидеть, насколько она велика.

Другие вопросы по тегам