2

Это действительно так:

{
tar -c dir1
tar -c dir2
} | cat > file.tar

Полученный файл file.tar является действительным tar-шаром?
Если нет, то как я могу соединить тарные шарики на лету?

2 ответа2

4

Да, с небольшой модификацией вашего метода.

tar поддерживает объединение нескольких файлов tar вместе ... запомните его историю ... это TAPE-ARCHIVE .... это поток данных, напоминающий катушку ленты, проскакивающей мимо головки чтения / записи .... это просто блоки данных в программе tar ...

Из того, что показывает мое тестирование, вы должны иметь где-то хотя бы ОДИН tar-файл ...

tar cf one.tar buncha files to add

С этого момента ... вы можете добавить больше файлов или добавить другой tar (или несколько ...)

tar rf one.tar even more files to fill up this pseudo tape
tar Af one.tar two.tar three.tar four.tar

В этом примере все попадает в «one.tar» ...

если вы используете ' rf ', он добавляет новые файлы к данному tar (one.tar здесь), тогда как если вы используете Af, он добавляет один или несколько файлов tar в исходный файл tar (urk! рекурсивная смола! липкий!)

Как всегда, справочные страницы - ваши друзья. (медленные, слабо светящиеся светло-зеленые друзья ... но друзья)

1

Вы не можете просто объединить тарболы, как это, они не будут вести себя так, как вы ожидаете. Вы можете проверить содержимое архива, используя:

tar tf file.tar

Это напечатало бы только содержимое dir1 без dir2 . Чтобы заархивировать две директории dir1 и dir2 в file.tar , вы можете использовать:

tar cf file.tar dir1 dir2

Руководство доступно на http://www.gnu.org/software/tar/manual/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .