同时使用 GPG 和 tar.gz,无需打包完整路径

同时使用 GPG 和 tar.gz,无需打包完整路径

我想压缩并加密一个文件夹:

  • tar -cz "/path/to/the/folder/" | gpg --encrypt --passphrase "password" --recipient "[email protected]" > "/destination/package.tar.gz.gpg"

当我解密和解压缩时,它不仅包含我压缩的“文件夹”,而且具有完整的文件路径:/path/to/the/folder/[whatever]

我倾向于避免使用cd,绝对路径对我来说似乎更清晰。

如何从档案中删除完整的文件路径?

答案1

tar有不同的行为,取决于您是否从当前路径之外的文件夹执行它(例如,您tar在 中的某个文件夹/usr/local/src/foo,而您位于主目录中/home/alice),它将在 tar 文件中存储绝对路径。如果您在路径中的某个文件夹中(例如,您想/usr/local/src/foo在 中执行tar /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融入其中。

相关内容