Bash: объединение шаров TAR

Bash: объединение шаров TAR

Допустимо ли это сделать:

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

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

решение1

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

tar поддерживает объединение нескольких файлов tar вместе... помните его историю... это ЛЕНТОЧНЫЙ АРХИВ... это поток данных, напоминающий катушку ленты, проносящуюся мимо головки чтения/записи... это просто блоки данных для программы 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»...

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

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

решение2

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

tar tf file.tar

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

tar cf file.tar dir1 dir2

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

Связанный контент