Я пытаюсь создать архив с tar, используя относительные пути. Я использую следующую команду:
tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order
Но архивные файлы все еще имеют абсолютные пути. Как я могу использовать tar с относительными путями?
Ответы:
'~' расширяется оболочкой. Не используйте '~' с -C:
(tar будет включать webapps / zers / wp-content / plugins / my-page-order path) или
(tar будет содержать путь к моей странице)
Или просто сначала CD
источник
-C
изменяется текущий рабочий каталог, как объяснено в ответе Лекенштейна.-C
должен был быть задан как относительный путь, а вместо этого задан как абсолютный путь. Использование ~ здесь не имеет значения вообще.-C new_cwd
изменяет текущий рабочий каталог наnew_cwd
. Следующие аргументы затем оцениваются относительноnew_cwd
.источник
Решение без GNU, если
tar
нет-z
возможности, просто упомянуть:РЕДАКТИРОВАТЬ (с
&&
и безrm
):источник
rm
; почему вы включаете это в свой ответ? (2) Ваш ответ архивирует неправильный каталог. (3) Почему вы изменилисьtar -z
наtar | gzip
? (4) Пока вы собираетесь использовать&&
, вам, вероятно, следует использовать и&&
послеpushd
.-z
(4) я бы, вероятно, использовал&&
в скрипте, но я думаю, что это не обязательно в «одном лайнере»~/webapps/zers/wp-content/plugins/my-page-order
с выводом на~/files/wp/my-page-order.tar.gz
; ваша команда архивов~/files/wp/my-page-order
. (3) Спасибо за редактирование вашего ответа, чтобы объяснить, почему вы использовалиgzip
.