📅  最后修改于: 2023-12-03 15:09:37.643000             🧑  作者: Mango
在开发和部署过程中,经常需要将本地文件夹复制到 Ubuntu 服务器上。本文将介绍如何使用 Shell/Bash 命令来实现这一目标。
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 是一种安全文件传输协议,可以在本地主机和远程主机之间进行文件传输和文件管理。可以使用以下命令将本地文件夹 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 命令可以快速同步本地和远程主机上的文件和文件夹,同时保持文件夹结构。以下命令可以将本地文件夹 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 服务器上。这些命令也可以将其他文件和文件夹复制到远程服务器上,并且可以通过修改命令行选项来满足不同的需求。