我想压缩并加密一个文件夹:
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
融入其中。