场景:
在使用Linux操作系统的过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cp和scp。
cp命令用来复制文件或者目录。scp是secure copy的简写,用来在Linux下进行加密的远程传输文件或者目录。
cp和scp是Linux中功能强大且常用的的命令,下面就介绍下cp和scp两个命令的使用
说明:
1、本次介绍的 scp 命令的前置条件为本地已经安装了 git 通过git命令窗口来执行操作
2、在 windows系统的 cmd 命令下操作也可以
3、连接linux服务器语法:ssh 用户名@服务器IP
一、cp命令
cp命令可以复制一个文件,可以是单个文件复制也可以是整个目录复制,命令的使用方式:
cp [options] source dest
例如:cp test.txt test1.txt,就是把test.txt复制为文件test1.txt
常用的cp命令选项有:
`-r`:拷贝目录文件,将目录下的文件依序拷贝到目标目录中
`-f`:如果目标文件中已经有相同的文件名存在,在复制前先将同名文件删除再进行复制
`-l`:对源文件进行硬链接,而不复制文件
`-u`:源文件的Modification Time较目的文件有更新的时候,才会进行复制。
`-v`:输出详细信息
复制文件夹的命令:
cp -r test/ test1/
二、scp命令
scp命令可以实现本地与远程服务器之间的双向传输,本地文件可以传输到远程服务,也可以把远程服务器上的文件传输到本地
scp常用的命令选项:
`-P`:数据传输默认端口,默认是22
`-r`:递归拷贝整个目录
`-i`:指定密钥文件,参数直接传递给ssh使用
`-l`:限定网速,以Kbit/s为单位
`-C`:允许压缩
`-1,-2`:强制scp命令使用ssh1或者ssh2协议
`-4,-6`:使用ipv4或者ipv6寻址
下面是比较常用的scp命令使用的例子
1、本地文件传输到远程服务器
scp test.txt root@192.168.1.1:/home/
将test.txt文件复制到目标服务器(192.168.1.1)下的home文件夹下
2、本地文件夹传输到远程服务器
scp -r test root@192.168.1.1:/home/
将test整个文件夹复制到目标服务器下的home文件夹下
3、远程服务器文件传输到本地
scp root@192.168.1.1:/home/test.txt test
将远程服务中home目录下的test.txt文件,复制到本地的test目录下
4、远程服务器文件夹复制到本地
scp -r root@192.168.1.1:/home/test /Users/jjz
5、scp命令指定密钥文件
scp test.txt root@192.168.1.1:/home/ -i ~/.ssh/id_rsa.1
指定了密钥文件id_rsa.1做为ssh的连接参数,不使用默认的密钥文件
语法总结:
1:拷贝本地文件到远程机器上:
scp 本地文件名 账号@远程机器IP地址:远程机器目录
例:scp /home/test root@192.168.80.80:/home/testdir/
2:拷贝远程机器上的文件到本地:
scp 账号@远程机器IP地址:远程机器全路径 本地目录
例:scp root@192.168.80.80:/home/testdir/test /home/testdir/