通过命令行使用密码压缩文件夹


59

我想知道是否可以通过CLI执行以下操作。

我有一个文件夹F,其中包含几个子文件夹和一些文件。我想使用“ password-only-extract” F.zip文件夹压缩成文件。



1
Google员工......→请停止把任何信任压缩密码“保护” -见下面回答
弗兰克Nocke

Answers:


67

使用以下cd命令转到相关文件夹:

cd /path/to/folder/

(如果您的文件夹F位于主文件夹中,则可以执行此操作cd ~。)

然后,输入您的终端:

zip -er F.zip F

这将提示您输入密码。给它,这将从该文件夹中创建一个受密码保护的zip文件。

  • -e为您的zip文件启用加密。这就是要求输入密码的原因。
  • -r 使命令递归,这意味着文件夹内的所有文件都将添加到zip文件中。
  • F.zip 是输出文件的名称。
  • F 是您要压缩的文件夹。

有一个名为的选项-P,它将允许您在命令本身中传递密码,但这并不好,因为总是存在过头偷看威胁ps -ef如果使用-Pswitch,其他用户也可以使用命令查看密码。使用该-P开关,命令将如下所示:

zip -P password -r F.zip F
  • 请访问man zip以获取更多信息。

-e表示加密
dedunumax

嘿,我刚刚编辑了您的问题,以包括一些上下文。但是您可以对其进行编辑以包括您的-e means encrypt评论以及该-r选项的含义吗?谢谢!
Alaa Ali 2013年

Tx Dedunu供您输入。只需要澄清一下。如果我需要使它自动化...那是什么意思,如果我可以在命令本身中设置密码而不是提示输入密码?
UnderDog 2013年

我也补充了。
dedunumax

1
但是建议不要使用它,因为将记录您的历史记录。否则其他用户将看到带有“ ps aux”的密码
dedunumax 2013年

40

zip文件的加密功能很弱,很容易被破坏。而是使用7zip。

7z a -p Fdirectory.7z /path/to/F
  • a 命令告诉7zip添加文件。
  • -p 您可以将其保留为空白,以便它以交互方式询问您,或在此处键入密码。
  • Fdirectory.7z 是要创建的存档的名称。
  • /path/to/F是目录的路径。它可以是相对路径,也可以是完整路径。

建议不要在外壳程序中键入密码,因为对/proc目录具有访问权限的任何人都可以看到该密码。


3
看来,如果您-p只传递给7z密码并忽略它,它会以交互方式要求输入密码-甚至是第二次进行确认。
SSC 2015年

@ssc是最有用的选项,但它是不是在手册页..
Braiam

我尝试了上述命令来压缩一个文件夹,其中包含几个文件,总大小约为19kB。然而,这大约需要2分钟!为什么要花这么长时间?
BringBackCommodore64

2
@ BringBackCommodore64不要使用-r标志来递归。7z 递归不带该标志的源目录。-r而是添加当前工作目录的所有文件和子目录。7z的手册页特别警告了这一点,并指出应避免使用此标志。linux.die.net/man/1/7z
哈肯盖

1
@ rubo77任何格式都可能遭到暴力破解,但是7zip算法并不容易被破坏,如答案所示,其中可能无法输入> 12个字符的密码。
Braiam '18
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.