linux - 如何 tgz 目录中的所有项目并使用 GnuPG 即时加密?

标签 linux bash tar gnupg for-in-loop

我正在寻找一个 tgz 目录所有项目的解决方案,在这一步我想使用 GnuPG 即时加密它。

对我使用的目录中的所有项目进行tgz

for i in *; do tar cfvz $i.tgz $i; done

我想我必须像这样通过 gpg 管道传输它

| gpg -z 0 --always-trust --encrypt -r mail@mail.com > "file".tgz.gpg

但是我必须在哪里调用 gpg 呢?我尝试的所有操作都导致了错误。

最佳答案

如果您不介意将中间文件存储在硬盘上,只需对其进行加密(然后可能会删除它)。生成的脚本类似于

for i in *
do
  tar cfvz $i.tgz $i
  gpg -r mail@mail.com --encrypt $i.tgz # Include the other options as needed
  rm $i.tgz # If you want to
done

如果要在磁盘上没有中间未加密文件的情况下执行操作,请确保 tar 将文件转储到标准输出而不是将其写入文件(通过不使用 -f 标志):

for i in *; do tar cvz $i | gpg -r mail@mail.com --encrypt > $i.tgz.gpg; done

关于linux - 如何 tgz 目录中的所有项目并使用 GnuPG 即时加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434479/

相关文章:

linux - 如何在删除前检查文件是否存在?

c - strace输出问题

c - 堆栈内存上的 Memcpy

linux - 根据文件年龄压缩完整文件结构的脚本

linux - 在 Linux 中使用 tar 的不同方法

linux - IFS 变量是否发生以下变化?

bash - 无法让 Chef 在特定用户下运行 bash

bash - 带通配符的文件循环

bash - 如何在 UNIX 脚本中使用 awk 作为变量

linux - tar.gz 和 tgz 是一回事吗?