Как создать архив tar в другом каталоге?

Установка grub имеет 2 части: файлы ресурсов и загрузчик. Каждая установка ОС имеет свои собственные файлы ресурсов, но загрузчик всегда устанавливается на главной загрузочной записи. Эффективно, загрузчик, который установлен позже, перезапишет первого. В этом смысле у Вас может быть только одна полная функциональная личинка за один раз.

Я предполагаю, что хитрая часть (и Ваш реальный вопрос), как заставить несколько Os'es сотрудничать способом мультиначальной загрузки. Это может быть сделано 2 способами:

Первое должно заставить основную установку личинки загрузить другой OS'es. Это сделано мое изменение конфигурации личинки (конкретно файл /boot/grub/grub.cfg) включать инструкции относительно того, как загрузить дополнительный OS'es. На некоторых дистрибутивах (я думаю Ubuntu) это может быть сделано автоматически тестером ОС. Этот метод не очень хорош, поскольку он требует изменений в основной установке каждый раз, когда Вы обновляете ядро, но он работает.

Второе должно заставить вторичный OS'es установить их загрузчик на разделе, а не MBR, и сказать основную установку личинки на chainload вторичные установки. У меня есть отдельный вопрос на этом (действительно не работал на меня, поэтому добавьте ответ при создании его). Этот метод изящен и является моим предпочтительным, однако настраивание его может быть хитрым в зависимости от Вашей удачи.

39
15.02.2013, 20:30
4 ответа

Простой способ, если Вы не должны особенно использовать -C сказать tar для изменения на некоторый другой каталог, должен просто указать полный путь в архив на командной строке. Затем можно быть в любом каталоге, Вы предпочитаете создавать структуру каталогов, которую Вы хотите в архиве.

Следующее создаст архив /var/www/file.tar.gz и помещенный file1 из текущего каталога (независимо от того, что это, оказывается) в нем, без информации о пути в архиве.

tar czf /var/www/file.tar.gz file1

Путь (или в архив, составляющие файлы или в обоих) может, конечно, также быть относительным. Если file1 находится в /tmp, Вы находитесь в /var/spool и хочу создать архив в /var/www, Вы могли использовать что-то как:

tar czf ../www/file1.tar.gz /tmp/file1

Существует миллион вариаций на тему, но это должно запустить Вас. Добавьте v отметьте, если Вы хотите видеть что tar на самом деле делает.

48
27.01.2020, 19:35
  • 1
    Вы могли также использовать относительный путь. –  N.N. 15.02.2013, 20:46
  • 2
    @N.N. Абсолютно, но так как мы понятия не имеем что $PWD казалось самым безопасным использовать полный путь в примере. –  a CVn 15.02.2013, 20:49
  • 3
    Действительно, я просто, хотя это имело смысл включать это, чтобы показать, что это - доступный вариант для решения проблемы. –  N.N. 15.02.2013, 20:51
  • 4
    Тем путем, путь file1 в tar архив будет /tmp. Это может или не может быть тем, что Вы ожидаете. –  mouviciel 13.12.2013, 10:50

Думаю, это должно быть:
tar czf file.tar.gz -C / var / www / file1

Что мне подходит. Он сообщает, что нужно сменить каталог, а затем выбрать файл.

3
27.01.2020, 19:35

Я превращаю сжатые данные в поток (-) и легко переименовываю и размещаю (>) там, где захочу (Также я всегда сохраняю относительный путь (./), чтобы было легче работать с ним при распаковке)

tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
8
27.01.2020, 19:35

Работает отлично

cd /home; tar -czvf - /var/log/* > varlog.tar.gz
-2
27.01.2020, 19:35

Теги

Похожие вопросы