Linux中的文件复制:cp和scp

极客漫步人
• 阅读 7958

在使用操作系统的使用过程中,常常需要复制文件到本地或者传输文件到其他电脑上,这时候用到两个命令cpscp
cp命令用来复制文件或者目录。scp是secure copy的简写,用来在Linux下进行加密的远程传输文件或者目录。
cpscp是Linux中功能强大且常用的的命令,下面就介绍下cp和scp两个命令的使用。

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命令的基本格式:

scp [options] source dest

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
    
    将远程服务器中home目录下的test整个目录复制到本地的jjz目录下
  5. scp命令指定密钥文件

    >scp test.txt root@192.168.1.1:/home/ -i ~/.ssh/id_rsa.1
    
    这里指定了密钥文件`id_rsa.1`做为ssh的连接参数,不使用默认的密钥文件。
点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
tar命令的exclude参数
用tar命令可以在Linux底下进行打包操作,如果要排除某些特定的目录或者文件可以用exclude参数,通常比较好用的有以下几个\excludevcs,这个是将版本控制系统的文件予以排除。\excludepath/to/my/name,这个是将某个路径下的文件夹或者文件予以排除,这个参数有两点需要注意一是如果是文件夹,文件夹名称的末尾
Easter79 Easter79
3年前
tar命令
tar命令tar 可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非
Stella981 Stella981
3年前
Linux中curl命令
命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。语法:curloptionurl常见参数:!复制代码(https://oscimg.oschina.
Wesley13 Wesley13
3年前
SCP和SFTP相同点和区别
都是使用SSH协议来传输文件的。不用说文件内容,就是登录时的用户信息都是经过SSH加密后才传输的,所以说SCP和SFTP实现了安全的文件传输。SCP和CP命令相似,SFTP和FTP的使用方法也类似。SCP和SFTP的共同之处在于「使用SSH将文件加密才传输的」使用「WinSCP」或者「FileZilla」之类的客户端,还可以和Windows之间进行文
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
ThinkPHP5.0 build 自动生成模块
提示:首先,下载的完整框架或者Composer运行创建命令生成的框架中,build.php文件默认存放于根目录下。需要复制build.php文件到application目录,并对该文件进行修改,举例如下:return//生成应用公共文件
Stella981 Stella981
3年前
Linux 常用命令学习
和文件相关的操作比较常用的我整理了下面几个:总体划分:1.cd:进入目录或者返回目录2.cp:复制文件或者文件夹3.mv:移动、重命名文件或者文件夹4.rm: 删除文件或者文件夹5.ls : 罗列当前文件夹下得文件(横向)6.ll  :罗
Stella981 Stella981
3年前
Linux下批量管理工具pssh安装和使用
Linux下批量管理工具pssh安装和使用pssh工具包安装:yumyinstallpsshpssh:在多个主机上并行地运行命令pscp:把文件并行地复制到多个主机上prsync:通过rsync协议把文件高效地并行复制到多个主机上
Stella981 Stella981
3年前
Linux普通用户登录后,命令行提示:
    遇到此种问题,那么需要了解和用户创建有关的一个目录(/etc/skel/目录),此目录下的所有文件(包括隐藏文件)都会被复制到新添加的用户的家目录中。/etc/skel/目录到底是干嘛的呢?  该目录下是用来存放新用户环境变量文件的,添加新用
Wesley13 Wesley13
3年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。