📜  命令行上传文件 ssh - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:50:42.966000             🧑  作者: Mango

命令行上传文件 ssh - Shell-Bash

在开发过程中,我们经常需要将本地计算机上的文件上传到一个远程服务器,这时候,ssh命令便成为了一种非常便捷的方式。本篇文章将介绍在命令行下使用ssh上传文件的基本操作。

前置条件

在使用ssh上传文件前,需要满足以下的前置条件:

  • 本地计算机和远程服务器都已经安装了ssh;
  • 本地计算机可以访问远程服务器;
  • 本地计算机上有需要上传的文件。
命令语法

上传文件的命令语法如下:

scp [options] local_file remote_user@remote_ip:remote_folder

其中,scp是上传文件的命令,[options]是可选参数,local_file是本地计算机上需要上传的文件路径,remote_user是远程服务器的用户名,remote_ip是远程服务器的IP地址,remote_folder是远程服务器上的目标文件夹路径。

options

scp命令有很多可选参数,主要包括以下几个:

  • -P 指定远程服务器的端口号,默认为22;
  • -r 递归传输文件夹;
  • -v 显示上传进度。
上传文件示例

下面将通过一个示例来演示如何使用ssh上传文件。

我们假设本地计算机上有一个文件/home/user/test.txt,需要把它上传到远程服务器192.168.1.100/var/www/目录下。

上传命令如下:

scp /home/user/test.txt remote_user@192.168.1.100:/var/www/

这条命令表示上传/home/user/test.txt文件到远程服务器192.168.1.100/var/www/目录下,如果需要输入密码,则会提示输入密码。

如果希望在上传过程中显示上传进度,可以在命令后面加上-v参数:

scp -v /home/user/test.txt remote_user@192.168.1.100:/var/www/

上传进度会像下面这样显示:

Sending file modes: C0777 18 test.txt
Sink: C0777 18 test.txt
test.txt                                                    100%   18     0.2KB/s   00:00

如果需要上传一个文件夹,可以添加-r参数:

scp -r /home/user/dir remote_user@192.168.1.100:/var/www/

这条命令表示上传/home/user/dir文件夹到远程服务器192.168.1.100/var/www/目录下。

总结

使用ssh上传文件是一个非常方便的操作,可以帮助我们在开发过程中快速地将本地文件上传到远程服务器,提高开发效率。同时,在上传过程中,我们还可以通过参数来控制上传过程,保证上传结果与预期一致。