Создайте файл .tar.bz2 Linux

87

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

Допустим, я нахожусь в папке / home / user / folder. В папке «папка» несколько файлов (txt, .c и т.д.). Как мне сжать эту папку типа .tar.bz2 и поместить ее в мой / домашний каталог?

В папке / home / user / я пробовал, sudo tar -cvjSf folder.tar.bz2но получаю ошибку:

tar: Трусливый отказ создавать пустой архив

Адам
источник
11
Я номинирую это на премию «Бесполезное использование sudo», поскольку вы работаете в своем домашнем каталоге, и вам не нужно будить суперпользователя.
Afr
1
Для тех, кому интересно - c= создать, v= подробный, j= сжатие bz2, S= разреженная эффективность, f= имя выходного файла. Я не знаю точно, что Sделает, это просто список со страницы
руководства

Ответы:

172

Вы не указываете, что включить в архив.

Выйдите на один уровень за пределы папки и попробуйте:

sudo tar -cvjSf folder.tar.bz2 folder

Или из той же папки попробуйте

sudo tar -cvjSf folder.tar.bz2 *

Ура!

Pietromenna
источник
2
Только помните, что если вы используете второй вариант, * не включает скрытые файлы в вашу текущую папку (начиная с символа точки). Так что первый вариант лучше, поскольку он будет включать скрытые файлы.
Шервин Эмами
3
Эй, ты можешь заменить '*' на '.' во втором варианте также включить скрытые файлы.
pietromenna
3
OpenBSD не имеет Sопции ' ', вместо нее она есть во FreeBSD, но только с опцией 'extract', поэтому лучше всего будетtar cvjf
b3h3m0th
11

Попробуйте это из другой папки:

sudo tar -cvjSf folder.tar.bz2 folder/*
Роберт Юхас
источник