如何在Linux之间复制文件及文件夹
来自YTYZX有图有真相的百科
本例中使用scp(secure copy)命令进行复制。scp命令适用于在Linux下进行远程拷贝文件。
本例中以以下两台主机为例,主机信息如下。 A主机: IP: 192.168.1.103 系统版本:CentOS release 6.7 B主机: IP: 192.168.1.105 系统版本:Kali GNU/Linux Rolling
查看主机配置
1.在A主机下输入“ifconfig”查看IP地址,本例中为192.168.1.103。
2.在A主机下输入“cat /etc/issue”查看系统版本,本例中为CentOS release 6.7。
3.在B主机下输入“ifconfig”查看IP地址,本例中为192.168.1.105。
4. 在A主机下输入“cat /etc/issue”查看系统版本,本例中为Kali GNU/Linux Rolling。
5.在A主机下输入"cd /tmp"进入tmp目录,并输入“ls”查看目录内容(此步骤可省略)。
6.在B主机下输入"cd /tmp"进入tmp目录,并输入“ls”查看目录内容(此步骤可省略)。
7.在B主机下输入“vi scptest.txt”并按回车键,新建一个名为scptest.txt的文件。
8.任意输入内容并按ESC键,输入“:x”保存并退出。 本例中输入“This is a test for scp”。
9.在B主机/tmp命令下输入“ls”查看,发现已经新建了名为scptest.txt的文件。
10.在A主机下输入“ping 192.168.1.105”并按回车键确定,保证网络通信正常,确认无误后按Ctrl+c停止此命令。
从A主机下载B主机文件
11.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”并按回车键确定。 此命令意思:使用scp命令,以root用户登录主机192.168.1.105并复制B主机/tmp目录下名为scptest.txt的文件, 将之复制到本机(A主机)/tmp目录下,文件名任为scptest.txt。
12.如为此次连接此主机(B主机),则会出现如下提示,大致意思为无法确认公钥指纹为ec:09:f0:35:99:ed:8d:74:df:4c:df:c6:7e:4d:4a:8e的主机真实性,询问您是否继续。 提示信息:The authenticity of host '192.168.1.105(192.168.1.105) can't be established. RSA key fingerprint is ec:09:f0:35:99:ed:8d:74:df:4c:df:c6:7e:4d:4a:8e. Are you sure you want to continue connecting (yes/no)?
13.如您确认此公钥指纹真实有效则可输入“yes”继续,A主机将自动保存B主机的密钥指纹到$HOME/.ssh/known_hosts文件中。下次连接时将不会再次出现警告。 提示信息:Warning: Permanently added ‘192.168.1.105’(RSA) to the list of known hosts.
14.在“root@192.168.105's password:”后面输入B主机的用户(本例中为root)密码后将开始复制文件。 注意:本例中因文件(scptest.txt)较小,故复制速度和时间均为0,复制大文件则可看到复制速度及时间。
15.在A主机里输入“vi /tmp/scptest.txt”可查看新复制文件内容。
16.在编辑器里可看到文件内容与B主机的源文件相同,为“This is a test for scp”。
从A主机下载B主机文件夹
17.在A主机里输入“cp -r /root/Pictures/ /tmp/Pic”并按回车键将/root/Picturs/目录下所有文件复制到/tmp/Pic目录下。
18.在A主机/tmp目录下输入“ls Pic/”查看/tmp/Pic/目录下的文件,内容为两个截屏图片文件。
19.在B主机下输入“scp -r root@192.168.1.105:/tmp/Pic /tmp”并按回车键将A主机(192.168.1.105)/tmp/Pic目录下的文件复制到B主机/tmp目录下, 输入A主机root用户密码即开始复制。 注意:使用scp命令复制目录需加上“-r”参数。
20.在B主机下输入“ls -l /tmp/Pic/”查看已复制文件。
从A主机上传文件到B主机
21.在B主机/tmp目录下输入“mkdir upload”新建一个名为upload的文件夹。
22.在A主机输入“scp /tmp/scptest.txt root@192.168.1.105:/tmp/upload/scptest.txt”命令将A主机/tmp目录下名为scptest.txt的文件上传到B主机(192.168.1.105)的/tmp/upload文件夹,并保持文件名为scptest.txt。 注意:按回车键后提示输入B主机的root用户密码,输入正确密码后即开始上传。
从A主机上传文件夹到B主机
23.同理在A主机输入“scp -r /tmp/Pic/ root@192.168.1.105:/tmp/upload”即可将文件夹上传。 注意:上传文件夹需添加“-r”参数。
故障排除
24.输入“scp root@192.168.1.105:/tmp/scptest.txt /tmp/scptest.txt”命令并按回车键确定提示“-bash: scp: command not found”。 注意:此错误由未安装openssh引起。
25.在CentOS/RHEL或者Fedora系统输入“yum install openssh-clients”并按回车键安装。 注意:此处为openssh-clients。
26.输入“y”即可开始安装。
27.安装完毕后输入“service sshd status”查看sshd服务状态。
28.在Ubuntu或者Debian系统下需输入“apt-get install openssh-client”并按回车键安装(本例中B主机已安装)。 注意:此处为openssh-client,在client后面没有s。
29.输入“service ssh start”启动ssh服务。 注意:此处服务名为ssh,不是sshd。