【推荐】Linux运维基础命令cp和scpscp基金会标志
在windows中复制直接用鼠标右键复制,或者选中CTRL+C和CTRL+V来复制。但大部分的服务器是使用linux系统,在linux系统的操作一般都是通过命令,远程终端操作,这时需要复制文件,就需要使用到cp命令。
在linux中通过cp --help 或man cp查看cp命令参数,发现有很多参数,具体自己查看,这里主要介绍常用参数。
命令格式:cp [options] source dest 或 cp [options] source... directory
主要参数说明:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。ln 命令创建的连接文件,相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示,不建议使用。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r
:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件,该参数常用复制整个目录。
-l:不复制文件,只是生成链接文件。
简单例子:cp a.txt a.txt.bak
cp -r ./tmp/ /tmp/
有时候会遇到这种情况,想把主机A文件直接复制到主机B的文件,而不想先把A主机文件通过ftp软件拷贝到windows,然后再从windows拷贝到A主机这么麻烦,这个时候就可使用scp命令,scp命令与cp命令使用几乎是一样的,但源和目的可以在不同主机上。
命令格式:scp [可选参数] file_source file_target
主要参数:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留
原文件
的修改时间,访问时间和访问权限。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
简单例子:
A主机本地a.txt文件,复制到B主机中/home目录下b.txt文件
scp a.txt user_B@IP_B:/home/b.txt
将远程B主机文件b.txt文件,复制到本地A主机目录中/home目录下a.txt文件
scp user_B@IP_B:/home/b.txt /home/a.txt
user_B:为B主机的用户
IP_B:为B主机的IP
按下回车后还需要输入B主机user_B用户密码就会复制了。
如果是复制目录的话,加上-r参数。