Когда я делаю следующее:
tar czvf ../myarchive.tar.gz ./
Я получаю одну (раздражающую) корневую папку в моем архиве tar:
Как убрать этот ужасный период при создании архива?
Когда я делаю следующее:
tar czvf ../myarchive.tar.gz ./
Я получаю одну (раздражающую) корневую папку в моем архиве tar:
Как убрать этот ужасный период при создании архива?
Ответы:
Вы не
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(Примечание: это не работает, если в вашей оболочке включено отслеживание символьных ссылок текущего каталога и доступ к текущему каталогу осуществляется через символическую ссылку.)
Да, это не то, что вы спросили, но это то, что вы должны сделать. Архивы, которые раскрывают много файлов в текущем каталоге, раздражают: на каждого человека, распаковывающего архив, ложится бремя создания целевого каталога для файла, и если они случайно распаковывают их в непустом каталоге, трудно убирать В большинстве случаев архив должен создавать один каталог верхнего уровня, имя которого является базовым именем архива.
tar xzvf archive.tar.gz && mv archive/* /output
vs. unzip archive.zip -d /output
)
Точка появляется потому, что tar
создает структуру пути так, как вы указываете в аргументах. Так как вы дали . В качестве источника архив также создается в той же структуре.
Вы можете попробовать это и проверить:
tar -czvf ../myarchive.tar.gz *
Обновление ответа с помощью комментария n.st
tar --xform s:'./':: -czvf ../myarchive.tar.gz ./
*
Glob не будет соответствовать скрытые файлы.
лучше добавить ^ перед предыдущим.
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
ИЛИ все "/" в полном пути внутри архива будут удалены, если только "/" не является концом полного пути.