rcp(英文全称为:remote copy)命令是 Linux 系统和 FreeBSD 系统中用于在本地主机和远程服务器之间复制文件或目录的工具,它在传输数据时不使用加密算法加密传输的数据,因此无需输入密码。

在容易输入密码的情况下可以使用 rcp 命令传输数据,如果需要安全的传输数据,请使用 scp 命令在本地主机和远程服务器之间复制文件或目录。

本文将为你全面的介绍 rcp 命令的使用方法,使你能够简便的在本地主机和远程服务器之间复制文件或目录。

rcp 命令系统说明

rcp 命令现在在很多系统上默认是没有安装的(被 scp 命令替代),rcp 命令在各系统上对应的软件包的名称有所不同,请查看下方的安装说明。

1、在 Debian / Ubuntu 系统上安装 rsh-client 软件包来安装 rcp 命令:

# 更新软件源
sudo apt update

# 安装 rsh-client 包(含rcp)
sudo apt install rsh-client -y

2、在 RHEL / AlmaLinux / Rocky Linux 系统上安装 rsh 软件包来安装 rcp 命令:

# 安装 rsh 包
sudo dnf install rsh       # RHEL 8+/AlmaLinux/Rocky

3、在 FreeBSD 系统上安装 rsh 软件包来安装 rcp 命令:

# 通过 pkg 安装
sudo pkg install rsh

rcp 命令语法

rcp 命令的基本语法结构如下所示:

rcp [选项] 源路径 目标路径

rcp 命令的语法结构非常的简单,需要理解路径信息:

  • 本地路径:Linux / FreeBSD 文件系统中使用的绝对路径
  • 远程路径:在文件或目录的绝对路径前添加用户和主机名信息,形式为:用户名@主机名:/文件路径
  • ​ 主机名:可以是 IP,也可以是域名

rcp 命令使用示例

把本地文件复制到远程

根据 rcp 命令的语法,在前面的 源路径 提供本地文件,目标路径 提供远程目录:

rcp file1.txt myuser@192.168.1.5:/home/myuser/

把远程文件复制到本地

根据 rcp 命令的语法,在前面的 源路径 提供远程文件路径,目标路径 提供本地目录:

rcp  myuser@192.168.1.5:/home/myuser/file1.txt ./

递归复制目录

使用 -r 选项递归的传输目录中的所有文件及子目录:

rcp -r ~/files/ myuser@192.168.1.5:/home/myuser/files/

传输特定类型文件

rcp 命令支持通配符,可以使用通配符 * 传输特定类型的文件:

rcp *.log myuser@192.168.1.5:/home/myuser/files/log/

如上命令把所有以 .log 结尾的日志文件复制传输到远程服务器。

rcp 命令选项详解

如下给出 rcp 命令选项的详细解释说明:

选项 说明
-p 保留源文件的修改时间、访问模式和访问权限
-r 递归复制整个目录的文件及其子目录中的文件
-k 禁用 Kerberos 身份验证
-x 启用 DES 加密传输内容,安全性也不是很高
-d 如果目录不存在,则创建目标目录
-h 复制符号链接指向的实际文件
-n 当文件存在时,不覆盖已存在的文件
-v 显示详细的操作过程
-P port 指定远程主机的 TCP 端口(需配合 -x

结语

rcp 命令能够实现在本地主机和远程服务器之间复制文件或目录。在本文中我们介绍了如何在各系统中安装 rcp 命令、其语法结构和使用示例,最后介绍了其选项。rcp 命令可在 Linux 各发行版和 FreeBSD 系统中使用。

rcp 是早期使用的在本地和远程服务器之间复制传输文件的工具,现在已经很少使用,推荐使用 scp。