大家好,我想知道如何使用 gzip 7z tar 或常规 zip 压缩目录,例如 /var/Backups/Tones,常规 gzip 无法做到这一点,因为 Tones 是一个目录,而这个网站 ss64.com/bash 并没有提供太多信息,我已经在谷歌上搜索过了,但那些人说的是基于计算机的,而不是移动的,如果可能的话,我还想让存档受密码保护?如果有帮助的话,我正在使用 bash 来做到这一点。
这将在越狱后的 iPad、iPhone 和 iPod 等 iDevice 上使用;它们有 7z gzip 和 tar。
好的,我使用以下命令使目录压缩正常工作:
#!/bin/bash
cd /var/Backups
7z a -p{example} Tones.tar.7z
我现在的问题是,当我去 iPhone 上提取该档案时,它甚至没有要求输入密码,我做错了什么吗?
答案1
您有多种选择。
7z
tar -cf tarfile.tar path/to/files/
7z a tarfile.tar.7z tarfile.tar
这将创建tarfile.tar.7z
。为了帮助清理,如果您已经安装了它,您可以使用:
p7zip tarfile.tar
反而。
至于密码保护,这是一个既不是tar
也不是的选项p7zip
。如果您习惯使用该7z
命令,可以-p{password}
根据手册页为其提供一个选项。
7z a -p{password} tarfile.tar.7z tarfile.tar
这将保留tarfile.tar
原位,因此您需要使用类似以下的方法进行清理:
if 7z q -p{password} tarfile.tar.7z tarfile.tar; then
rm tarfile.tar
fi
一个更简单的选择可能是牺牲你的压缩,然后使用压缩并-9
选择其所能达到的最大压缩程度。
请注意,这远不如使用 PGP 或 GnuPG 正确设计的方案那么安全,因此如果您能找到该方法(并且复杂性不会危及您的安全),那么您将走得更远。阅读前列腺特发性硬化症或者基努,两者都可以满足您的需要。
压缩
与 7z 一样,您无法使用单个命令行对 tar 进行密码保护。此外,该gzip
命令也不提供任何密码保护。因此这也迫使您使用第二步:
tar czf - path/to/files/ | openssl enc -aes-256-cbc -e > tarfile.tar.gz.enc
阅读openssl 的文档了解如何让它不在命令行上要求输入密码。或者:
tar czf tarfile.tar.gz path/to/files/
gpg --encrypt tarfile.tar.gz
请注意,您需要先设置 gpg 才能使其正常运行。
可能还有其他方法(或者“肯定有”)可以做到这一点。您可能希望将此作为进一步研究的起点。
压缩
如果zip
你的越狱设备中包含该命令,那么你可以使用如下命令:
zip -e -P{password} zipfile.zip path/to/files/
请注意 zip 的手册页说明了该-P
选项:这是不安全的.它继续说,在安全性真正重要的地方,请使用强加密(如 Pretty Good Privacy),而不是 zipfile 实用程序提供的相对较弱的标准加密。
这些命令中的任何一个都可以放在脚本中。如果您需要编写脚本方面的帮助,请发布您目前所获得的信息,以便我们提供反馈。
这就是我所得到的一切。
答案2
tar czf your_dir.tgz your_dir/
将创建一个压缩档案,大多数其他 zip 程序至少可以理解并在需要时解压。
但是,对于密码保护,tar/gzip 没有直接支持。请使用 ghoti 提出的解决方案,或者设置 GPG/PGP 并在压缩 tar 之前对其进行加密。