scp命令

时间:2020-03-05 15:31:13  来源:igfitidea点击:

Linux中的cp命令用于在Linux中复制文件。

cp命令只能在本地计算机上使用。

但是,如何从远程Linux系统复制文件呢?
要将文件从远程服务器复制到远程服务器,可以使用名为scp的命令。

提示:scp是安全复制(Secured Copy)的缩写。

scp命令语法

scp命令的语法和用法与cp命令相似,我们很快会在这些scp命令示例中看到它。

但是首先让我们看一下scp命令的语法:

scp <options> source_path destination_path

根据要复制的文件的来源,来源可以是客户端或者服务器。
如果源是客户端,则目标是服务器,反之亦然。

但这听起来太简单了,不是吗?
scp命令的主要焦点是使用源或者目标路径格式的正确格式的n。

服务器上文件或者目录的典型路径以以下格式表示:

<username><@ip_address_of_system>:<path_to_the file/directory>

实际上,我们也可以在scp命令中使用Hyman @ theitroad,但是更有可能导致错误“无法解析主机名”。

这是因为将主机名与IP地址相关联取决于服务器网络的网络配置。

使用实际的IP地址可以为我们省去麻烦。

使用scp命令之前要记住的事情

我们需要先完成以下几件事,才能在Linux系统上使用scp命令:

  • 确保ssh已在客户端和服务器计算机上安装并运行,因为scp命令在内部使用ssh。

如果未安装ssh,请在基于Debian的计算机上使用命令“ sudo apt install ssh”进行安装,或者使用发行版的相应软件包管理器进行安装。

  • 我们需要知道远程系统的用户名和密码。系统将提示我们输入远程主机的密码。仅当我们输入远程主机的正确密码时,文件传输才会开始。

在Linux中使用scp命令:10个实际示例

现在,我们已经看到了scp命令的语法和用于指定服务器路径的格式,现在让我们看看如何使用scp命令。

1.使用scp命令将文件复制到远程系统

要将单个文件从本地计算机复制到远程主机,请将该文件的路径指定为源路径,并将远程主机中的路径指定为必须复制该文件的路径。

scp abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

2.使用scp命令从远程系统复制文件

将文件从远程系统复制到本地系统几乎是相同的。
我们只需要指定远程系统上文件的完整路径和本地系统上的路径。

因此,要将文件从远程系统复制到当前目录,只需以以下方式使用命令:

scp Hyman@theitroad<ip_address_of_xyz>:/remote/user/home/abc.txt .

3.使用scp命令复制多个文件

要将多个文件从本地计算机复制到主机,只需指定文件名作为源路径即可。

scp abc.txt def.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

4.使用scp命令复制整个目录

使用scp复制目录也与cp命令相同。

我们可以使用-r选项并将文件夹名称指定为源路径。
这称为递归模式。

scp -r ~/Desktop/test Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

我们还可以指定多个目录,并在一个命令中将它们全部复制。

5.在输出中查看文件传输详细信息

如果我们想知道复制过程中幕后发生的事情,可以使用-v选项查看所有已执行的过程,包括调试,退出状态,加密,解密等。
这称为详细模式。

scp -v abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

6.在两个远程主机之间复制文件

到目前为止,我们已经了解了如何从本地计算机复制到远程计算机。
要将文件从一台远程计算机复制到另一台远程计算机,请按照上述方式以远程计算机的格式指定源路径和目标路径。

scp Hyman@theitroad<ip_address_of_abc>:<path_of_file_or_folder> Hyman@theitroad<ip_address_of_xyz>:<path_of_file_or_folder

不用说,我们需要在这里知道两个系统的密码。

7.压缩复制文件[减少传输时间]

如果我们尝试将一堆文件复制到一起,则比单个文件的传输所花的时间要多得多,单个文件的大小等于所有单个文件的总和。

如果我们认为需要提高文件传输的速度,则可以使用-C选项压缩文件并传输文件。

最好的事情是压缩仅在传输时发生。
传输完成后,文件将以其原始格式存储。
我们不会看到存档文件,但会看到所有单个文件,就像它们在远程服务器上一样。

scp -C abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

8.限制文件传输的带宽

如果我们认为文件传输占用了大部分带宽,则可以使用-l选项和新的带宽速率来减少文件传输的带宽。

scp -l 800 abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

请注意,我们在命令中指定的带宽以千比特/秒为单位,但是在传输文件时,scp命令输出将以千字节/秒为单位显示传输速率。

由于1字节= 8位,因此命令参数中的每秒8300千位很快将在命令输出中变为100千字节。

9.保留复制文件的原始属性

如果需要保留原始文件属性,例如文件许可权和所有权,文件时间戳等,请使用-p选项。

scp -p abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

10.隐藏scp命令的输出

如果我们对冗长的scp命令输出不满意,可以使用-q选项避免输出命令。
这称为相当模式。

它甚至隐藏了复制文件的进度。

scp -q abc.txt Hyman@theitroad<ip_address_of_xyz>:/home/xyz/Desktop

在以上示例中,我们已经了解了如何将文件从本地计算机复制到远程主机。
如果需要将文件从远程主机复制到本地计算机,请将要从远程主机复制的文件/文件夹的路径写为源路径,并将必须将文件/文件夹粘贴到本地计算机的路径写为目的地路径。