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

Und*_*Dog 82 command-line compression zip

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

我有一个文件夹F,其中包含几个子文件夹和一些文件。我想使用“仅密码提取”F.zip文件夹压缩为文件。

ded*_*max 112

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

cd /path/to/folder/
Run Code Online (Sandbox Code Playgroud)

(如果您的文件夹F在您的主文件夹中,您只需执行cd ~.)

然后,在您的终端中输入:

zip -er F.zip F
Run Code Online (Sandbox Code Playgroud)

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

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

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

zip -P password -r F.zip F
Run Code Online (Sandbox Code Playgroud)
  • 访问man zip以获取更多信息。

  • 但强烈不推荐使用,因为您的历史将被记录。否则其他用户可以通过“ps aux”看到您的密码 (2认同)

Bra*_*iam 45

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

7z a -p Fdirectory.7z /path/to/F
Run Code Online (Sandbox Code Playgroud)
  • a 命令告诉 7zip 添加文件。
  • -p 您可以将其留空,以便它以交互方式询问您,或者在此处输入您的密码。
  • Fdirectory.7z 是要创建的档案的名称。
  • /path/to/F是你的目录路径。它可以是相对路径或完整路径。

建议不要在 shell 中输入密码,因为任何有权访问该/proc目录的人都可以看到它。

  • 似乎如果您只将 `-p` 传递给 `7z` 并省略密码,它会以交互方式要求输入 - 甚至第二次进行确认。 (3认同)
  • @BringBackCommodore64 不要使用 -r 标志进行递归。7z _will_ 在没有该标志的情况下递归源目录。`-r` 将添加_当前工作目录_的所有文件和子目录。7z 的手册页特别警告了这一点,并说应该避免使用这个标志。https://linux.die.net/man/1/7z (2认同)