如何使用scp命令传输文件
SCP是一个安全的复制程序,用于在网络上的Linux主机之间传输文件或者目录。
SCP使用SSH协议来传输数据。
我们可以如下传输文件或者目录:
1)本地主机到远程主机。
2)远程系统到本地系统。
3)从本地系统中的两个远程主机之间传输。
在本教程中,让我们了解一些SCP命令以在Linux系统之间传输文件。
1)使用SCP命令将来自远程主机的文件复制到本地
以下示例将从远程系统'192.168.1.10'中将名为"file_for_copy.txt"的文件复制到本地系统上的当前目录(Dot指示当前目录)。
$scp [email protected]:/home/bobby/file_for_copy.txt . [email protected]'s password: file_for_copy.txt 100% 0 0.0KB/s 00:00
bobby@Inspiron-1440:~$ls file_for_copy.txt
使用SCP命令将来自远程主机的目录复制到本地
例如,可以将目录复制(如cp)(如cp),例如:递归,所以目录中的所有内容也可以复制
$scp -r [email protected]:/home/bobby/dir_for_copy . [email protected]'s password: file1.txt 100% 0 0.0KB/s 00:00 file3.txt 100% 0 0.0KB/s 00:00 file2.txt 100% 0 0.0KB/s 00:00
$ls -ld dir_for_copy drwxrwxr-x 2 bobby bobby 4096 2012-11-07 15:11 dir_for_copy
3)将文件从本地复制到远程主机
SCP打印输出的-V选项,然后执行SCP,并在其进度上打印调试消息。
在以下示例中,使用-v选项。
其中本地文件将复制到远程主机。
$scp -v examples.desktop [email protected]:/home/bobby
同样,可以将目录复制为"-r""选项。
在以下示例中,将名为JVM的目录复制到远程主机。
$scp -r jvm [email protected]:/tmp [email protected]'s password: file2.txt 100% 42 0.0KB/s 00:00 file.txt 100% 39 0.0KB/s 00:01
4)从本地主机复制两个远程主机之间的文件
要复制两个主机之间的文件,SSH服务应该在机器上运行。
"-3"选项将通过本地主机在两个远程主机之间传输文件。
以下命令将文件/home/bobby/myfile1.txt复制到192.168.1.20计算机的计算机192.168.1.10到/tmp目录.20计算机,具有详细输出。
$scp -3 -v [email protected]:/home/bobby/myfile1.txt [email protected]:/tmp
同样,可以在具有-r选项的两个远程计算机之间复制目录。
$scp -3 -r [email protected]:/home/bobby/mydir [email protected]:/tmp [email protected]'s password: Could not chdir to home directory /home/bobby: No such file or directory [email protected]'s password:
5)SCP具有端口号
假设,远程计算机的SSH端口是2200(而不是默认的SSH端口22)。
然后,我们需要使用-p
选项执行scp命令,如下所示:
$scp –P 2200 -r test_folder [email protected]:/home/test/
6)SCP命令复制多个文件(一个衬班)
我们可以使用scp命令按照下面的scp命令复制多个文件,而无需执行多次
$scp file1.txt file2.txt file3.txt [email protected]:/home/bobby
7)复制文件而不更改文件的时间戳
有时我们可能想要保留原始文件的时间戳。
但是当我们以正常方式SCP到不同的位置时,时间戳修改。
但是使用"-p""选项,我们可以使用相同的原始时间戳复制文件,如下所示。
$scp -p file1.txt [email protected]:/home/bobby
8)快速SCP复制文件
默认情况下,SCP使用AES-128将数据加密,因为它的安全性很高。
但这的缺点是它减慢了文件复制过程一点。
但是,如果我们想要更快地复制文件,可以使用河豚或者RC4如下。
$scp -c blowfish [email protected]:/home/user/file .
$scp -c arcfour [email protected]:/home/user/file .
9)SCP命令增加了安全性
如果我们寻找的安全性,则可以使用3DES更安全的方式复制文件。
但这会让这个过程变慢一点。
$scp -c 3des [email protected]:/home/user/file .
11)使用IPv4和IPv6的SCP命令
如果需要,我们可以强制SCP命令使用IPv4或者IPv6如下所示
$scp -4 [email protected]:/home/user/file .
$scp -6 [email protected]:/home/user/file .