如何在终端中使用SSH解压缩ZIP文件(适用于Linux服务器)

如何在终端中使用SSH解压缩ZIP文件

从 ZIP 文件(如我们的可下载备份功能生成的文件)恢复备份有时会是一个漫长的过程。如果在使用 SFTP 上传备份前在本地计算机上解压缩 ZIP 文件,很可能会遇到瓶颈,因为 SFTP 只能同时传输有限数量的文件。

幸运的是,有一种更快的方法可以大大缩短备份恢复时间。

与其在本地解压缩 ZIP 文件并上传解压缩后的文件夹,不如先将 ZIP 文件上传到服务器,然后再解压缩,这样通常会更快。

在本篇文章中,我们将介绍如何使用 SSH 解压上传到服务器的文件。在我们的示例中,我们将解压服务器上的备份文件,但同样的技术也可用于解压任何 Linux 服务器上的任何 ZIP 文件。

第 1 步 – 使用 SSH 登录服务器

第一步是用 SSH 登录服务器。为此,你需要一个 SSH 客户端,如 macOS 和 Linux 中的内置终端应用程序或 Windows 上的免费 PuTTY 客户端,以及 SSH 登录详细信息–IP 地址、用户名、密码(可选)和端口。

密码与公钥验证

你可能想知道为什么密码是可选的。使用 SSH 登录服务器时,有两种身份验证方法:密码和公钥身份验证。密码验证方法使用纯文本密码。

公钥身份验证被广泛认为是比密码身份验证更安全的替代方法。公钥验证方法要求你生成一对密钥–公钥和私钥。公钥上传到服务器,私钥存储在本地计算机上。在 SSH 登录过程中,会验证这两个密钥之间的加密链接,以验证用户身份。

部分服务器提供商支持用户通过面板上传 SSH 公钥。如果您使用的是其他服务器提供商,我们建议您查看相关文档,了解如何将 SSH 密钥上传到服务器。

现在我们已经介绍了密码和公钥验证的区别,接下来让我们看看 SSH 登录过程。

我们通常可以在仪表盘中找到服务器的 SSH 详细信息。

找到登录信息后,可以使用以下 SSH 命令登录。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>ssh username@ip-address -p port
>ssh username@ip-address -p port
>ssh username@ip-address -p port

根据下面的登录信息示例,SSH 终端命令为 ssh kinstasite@146.148.59.197 -p 24910。如果不使用公钥身份验证,执行登录命令后还会提示输入 SSH 密码。

  • IP 地址: 146.148.59.197
  • 用户名: kinstasite
  • 端口: 24910

SSH 登录成功后,你应该会在终端窗口中看到如下内容。

ssh-terminal-login

SSH 终端窗口

第 2 步 – 安装 Unzip 软件包(可选)

在某些 Linux 发行版中,默认情况下不安装 unzip 软件包。Kinsta 用户不必担心安装 unzip 软件包,因为我们的所有网站容器都自动安装了该软件包。如果你管理的服务器没有安装 unzip 软件包,你可以使用下面的命令来安装它,注意需要 sudo 级别的权限。

Ubuntu 和 Debian

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt install unzip
sudo apt install unzip
sudo apt install unzip

CentOS 和 Fedora

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo yum install unzip
sudo yum install unzip
sudo yum install unzip

第 3 步 – 使用终端解压 ZIP 文件

下一步是导航到 ZIP 文件并解压。要导航到正确的文件夹,我们可以使用 cd 命令,如下图所示。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>cd directory
>cd directory
>cd directory

我们已将 backup.zip 文件上传到 ~/private 目录,因此将使用下面的命令。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>cd ~/private
>cd ~/private
>cd ~/private

注意我们的终端提示现在如何显示 ~/private 目录。

导航到包含 ZIP 文件的目录

导航到包含 ZIP 文件的目录

我们可以使用 ls 命令列出当前目录下的文件和文件夹。在下面的截图中,你可以看到 ~/private 目录中的 backup.zip 文件。

在终端中列出文件

在终端中列出文件

解压 ZIP 文件有两种方法。你可以将其解压到当前目录或其他目录。

要将文件解压到当前目录,请使用下面的命令。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>unzip your-file.zip
>unzip your-file.zip
>unzip your-file.zip

要将文件解压缩到其他目录,请使用此命令。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>unzip your-file.zip -d directory
>unzip your-file.zip -d directory
>unzip your-file.zip -d directory

对于 backup.zip 文件,我们要将其解压到 ~/public 文件夹,可以使用下面的命令来完成。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>unzip backup.zip -d ~/public
>unzip backup.zip -d ~/public
>unzip backup.zip -d ~/public

运行 unzip 命令后,你会看到一系列以 “inflating” 开头的行。这表明解压过程已成功启动。

在终端中解压文件

在终端中解压文件

解压缩过程结束后,使用 cd 命令导航到目标目录,并使用 ls 命令列出文件,以验证解压缩后的文件是否在正确的位置。

验证解压后的文件

验证解压后的文件

如果想在解压缩后删除原始 ZIP 文件,可以使用 rm 命令,如下所示。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
>rm /path/to/your-file.zip
>rm /path/to/your-file.zip
>rm /path/to/your-file.zip

一般来说,如果要处理超过 50 MB 大小的 ZIP 文件,在服务器上解压缩通常比在本地计算机上解压缩更快。不过,解压 ZIP 文件还有更多好处,因为除了恢复备份,使用 SSH 和终端还能在很多情况下发挥作用。

小结

使用 SSH 在终端中解压 ZIP 文件可以大大加快工作流程,尤其是在批量上传大量文件的情况下。使用本帖中列出的 SSH 命令,你就能快速恢复备份和移动内容,而无需等待漫长的 SFTP 上传。

评论留言