如何压缩目录?


0

嘿家伙我想知道我将如何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上提取该档案时,它甚至不会要求输入密码我做错了什么?

Answers:


1

tar czf your_dir.tgz your_dir/ 将创建一个压缩存档,大多数其他zip程序至少可以在需要时理解和解压缩。

但是,对于密码保护,tar / gzip中没有直接支持。使用ghoti提出的解决方案,或者设置GPG / PGP并在压缩之前加密tar。


我如何用密码保护档案?

我想我做错了tar cxf /var/Backups/Tones.tgz / var / Backups / Tones /

不,我做错了。用'z'替换命令中的'x'。编辑如上。

好吧,它将用于iDevice,如iPad iPhone和iPod,越狱时它们有7z gzip和tar

1
他说tar / gzip或7z,而tar压缩使用gzip的算法。

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的正确设计方案那么安全,因此如果您能够找出该方法(并且复杂性不会影响您的安全性),您将会更进一步。阅读 PGP 要么 GnuPG的 ,这两者都能满足您的需求。

gzip的

与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 命令包含在您的越狱iDevice中,然后您可以使用如下命令:

zip -e -P{password} zipfile.zip path/to/files/

请注意,zip的手册页说明了 -P 选项: 这是不安全的 。它继续说, 在安全性非常重要的地方,使用强加密,例如Pretty Good Privacy,而不是zipfile实用程序提供的相对较弱的标准加密。

任何这些命令都可以放在脚本中。如果您需要帮助编写脚本,请发布您目前所拥有的内容,以便我们提供反馈。

这就是我所拥有的一切。


7z使用带有SHA-256 x 2 ^ 19密钥的AES加密。那怎么不是“设计合理的方案”?
Oleg V. Volkov

7z很好。这是缠绕它的东西,几乎肯定是破碎的。共享密钥方法 要求 密码是分发的(或者至少存储在将读取日志的同一系统上),这可能比使用PGP的基于公钥的解决方案更具风险。
ghoti

我是否需要一个带命令行的单独文件才能使其正常工作?

我正在使用iPhone,我的脚本也将用于iPad和iPod

1
我怀疑你已经有了许多有效的解决方案,但是你实施得非常糟糕。例如,您应该始终引用包含特殊字符的单词。尽管引用(例如,您的shell)可能会以您不期望的方式解释某些字符 ! 在tcsh)。既然你没有告诉我们你的外壳,我们无法帮助你。但是,首先,您是否在密码中加入花括号?你意识到了 {password} 在示例代码中意味着您的密码从打开的大括号开始并在结束时结束?
ghoti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.