📌  相关文章
📜  将文件夹从本地复制到 ubuntu 服务器 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:37.643000             🧑  作者: Mango

将文件夹从本地复制到 Ubuntu 服务器 - Shell/Bash

在开发和部署过程中,经常需要将本地文件夹复制到 Ubuntu 服务器上。本文将介绍如何使用 Shell/Bash 命令来实现这一目标。

通过 SCP 命令复制文件夹

SCP 是一种基于 SSH 协议的安全文件传输协议,可以在本地主机和远程主机之间进行文件传输。通过下面的命令可以将本地的文件夹 local_folder 复制到位于 ubuntu_server 的 Ubuntu 服务器上的 /remote_folder 文件夹中:

scp -r local_folder ubuntu_server:/remote_folder

其中:

  • -r 表示递归复制整个目录。
  • local_folder 是本地要复制的文件夹路径。
  • ubuntu_server 是 Ubuntu 服务器的 IP 地址或主机名。
  • :/remote_folder 是在远程服务器上要复制到的目标路径。

如果需要使用 SSH 密钥进行身份验证,则应该添加 -i 参数,并指定 SSH 密钥文件的路径:

scp -r -i /path/to/private/key local_folder ubuntu_server:/remote_folder
通过 SFTP 命令复制文件夹

SFTP 是一种安全文件传输协议,可以在本地主机和远程主机之间进行文件传输和文件管理。可以使用以下命令将本地文件夹 local_folder 复制到位于 ubuntu_server 的 Ubuntu 服务器上的 /remote_folder 文件夹中:

sftp username@ubuntu_server:/remote_folder <<< $'put -r local_folder\nexit'

其中:

  • username 是在 Ubuntu 服务器上的有效用户名。
  • ubuntu_server 是 Ubuntu 服务器的 IP 地址或主机名。
  • :/remote_folder 是在远程服务器上要复制到的目标路径。

需要注意的是,put -r 命令用于将本地文件夹复制到远程服务器,并 -r 表示递归复制整个目录。在执行完 put 命令后,使用 exit 命令退出 SFTP。

通过 rsync 命令复制文件夹

rsync 命令可以快速同步本地和远程主机上的文件和文件夹,同时保持文件夹结构。以下命令可以将本地文件夹 local_folder 复制到位于 ubuntu_server 的 Ubuntu 服务器上的 /remote_folder 中:

rsync -avz -e ssh local_folder username@ubuntu_server:/remote_folder

其中:

  • -a 表示归档模式,递归复制目录,并保留所有文件元数据(如文件权限、所有者等)。
  • -v 表示详细输出,以显示复制进度和文件详细信息。
  • -z 表示压缩,以便在数据传输过程中节省带宽。
  • -e ssh 表示使用 SSH 作为远程主机上的传输协议。
  • local_folder 是本地要复制的文件夹路径。
  • username 是在 Ubuntu 服务器上的有效用户名。
  • ubuntu_server 是 Ubuntu 服务器的 IP 地址或主机名。
  • :/remote_folder 是在远程服务器上要复制到的目标路径。
结论

通过 SCP、SFTP和rsync命令,可以快速将本地文件夹复制到 Ubuntu 服务器上。这些命令也可以将其他文件和文件夹复制到远程服务器上,并且可以通过修改命令行选项来满足不同的需求。