gpg命令行的man页面(Gnupg)包含了加密和解密文件的命令。以下是使用gpg加密/解密文件的标准命令。
gpg --encrypt --recipient xxx@mail.com ~/xxx/xxx.txt
- 加密
gpg --output ~/xxx/xxx.txt --decrypt ~/xxx/xxx.gpg
- 解密
但如果我有一个包含多个文件和文件夹的文件夹,如何使用命令行加密它?
gpg命令行的man页面(Gnupg)包含了加密和解密文件的命令。以下是使用gpg加密/解密文件的标准命令。
gpg --encrypt --recipient xxx@mail.com ~/xxx/xxx.txt
- 加密
gpg --output ~/xxx/xxx.txt --decrypt ~/xxx/xxx.gpg
- 解密
但如果我有一个包含多个文件和文件夹的文件夹,如何使用命令行加密它?
解决方案1:
使用 gpg-zip。
将用户 Bob 的目录 mydocs 的内容加密到文件 test1 中:
gpg-zip --encrypt --output test1 --gpg-args -r Bob mydocs
列出存档 test1 的内容:
gpg-zip --list-archive test1
这是一个直接来自将文件加密或签名成归档文件的示例。如果您详细阅读该页面,它将对您很有帮助。
解决方案2:
将目录转换为文件
如果您想要加密一个目录,您需要首先将其转换为一个文件。运行以下命令:
tar czf myfiles.tar.gz mydirectory/
这将给您一个名为'myfiles.tar.gz'的新文件,您可以对其进行加密/解密。要将tarball转换回目录:
tar xzf myfiles.tar.gz
现在你可以像之前一样使用加密。因此:
gpg --encrypt --recipient xxx@mail.com ~/xxx/xxx.txt
这是直接从Berkeley加密的示例中获取的,该示例也是一个快速且有用的阅读材料。gpg-zip
已经被弃用,推荐使用gpgtar
。 - demurez
标志通常是一种资源浪费,因为gpg已经进行了一些压缩。默认值为--compress-algo zip
,压缩级别为6
。 - mxmehlgpg
会检测到并禁用自身的压缩功能。因此,无论是否启用压缩选项,数据都只会被压缩一次,无论是使用带有压缩功能的tar
还是不带压缩功能的tar
。这种行为在gpg
的man
页面中有明确说明,如果使用gpg -v
调用,gpg
将报告其对此操作的处理方式。 - Carlgpgtar也是另一个选择。gpgtar可以将文件加密或签名到存档中。它是一个使用与PGP Zip相同格式的gpg-ized tar。
它会随gnupg一起安装在MacOS和Linux上。
加密目录
gpgtar --encrypt --output <out_file_name> -r <recipient> <dir_name>
解密目录
gpgtar --decrypt <out_file_name>
如果您不想将所有内容打成tar包,而是想单独加密多个文件:
cd
进入文件夹
加密: $ls | gpg --multifile --encrypt
或 $ls | gpg --encrypt-files -r <接收方>
解密: $ls | gpg --multifile --decrypt
或 $ls | gpg --decrypt-files