1

Я хотел бы сжать и зашифровать папку:

  • tar -cz "/path/to/the/folder/" | gpg --encrypt --passphrase "password" --recipient "mail@mail.mail" > "/destination/package.tar.gz.gpg"

Когда я дешифрую и распаковываю, он не только содержит "папку", которую я сжал, но также имеет полный путь к файлу: /path/to/the/folder/[whatever]

Я предпочитаю избегать использования cd , абсолютные пути кажутся мне более понятными.

Как мне удалить полный путь к файлу из архива?

1 ответ1

1

tar работает по-разному, в зависимости от того, выполняете ли вы его из папки, не находящейся в текущем пути (например, что-то tar в /usr/local/src/foo , находясь в вашем домашнем каталоге /home/alice), где будет хранить абсолютный путь в файле tar. Если вы находитесь в какой-либо папке в пути (например, вы хотите использовать tar /usr/local/src/foo , находясь в /use/local/src), он будет использовать относительные пути, начиная с каталога src .

Если вы не хотите фактически изменять каталог на нужный относительный корневой каталог, используйте флаг -C который фактически делает это внутри tar . Эти два эквивалентны:

cd /path/to/the/folder; tar -cz *; cd $OLDPWD
tar -C /path/to/the/folder -cz /path/to/the/folder/

В случае , если Вы задаетесь вопросом : $OLDPWD содержит последнюю папку перед cd ать в ней.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .