编辑
2022-09-30
技术
0

scp 命令是一个可以将文件复制到 Linux 服务器中的一个命令,可以在 Windows 的 cmd 或 powershell 中使用。基本的使用方法如下:

scp [option] /filename user@server-ip:/path

其中:filename 是文件名称,/path 是目标目录,user@server-ip 是登录服务器所用的用户名以及服务器ip;而至于 [option],则是如下定义

  • -C - 这会在复制过程中压缩文件或目录。
  • -P - 如果默认 SSH 端口不是 22,则使用此选项指定 SSH 端口。
  • -r - 此选项递归复制目录及其内容。
  • -p - 保留文件的访问和修改时间。

在输入此命令后,将会要求输入登录服务器的密码,在输入密码时不会有任何字符显示,这是正常的现象,目的是为了保护密码不被他人看见,输入完成后按回车即可登录。 然而实际上如果只上传文件而不是文件夹的话,则可以不添加任何参数,例如我想上传一个名为 test.txt 的文件到我的/www/website/files 里,我可以使用如下命令:

scp test.txt user@sever-ip:/www/website/files

此时可能有人注意到了,我并没有标明 test.txt 的绝对位置,假如计算机里有多个 test.txt 文件的话,那么计算机是如何知道我上传的是哪个 test.txt 呢? 这就是我写这篇文章最想说的,也是我在给服务器上传插件时踩了不止一次的雷。 网上有很多教程在/filename 处使用的是绝对路径,然而经过我的测试,直接在 powershell 中使用这个方法时,会提示找不到文件,所以我们换一种思路,直接在文件夹中打开 powershell 或 cmd,并且直接输入文件名,问题就迎刃而解了,同时也省去了输入繁琐的绝对路径。 使用方法为:进入目标文件/文件夹所在上级路径,右键文件夹空白处并点击在终端中打开(可能有不同的名称)即可。

1249838775.png

注意:文件或者文件夹名称前不必添加 / 符号

本文作者:Mirage

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!