
Linux uucp 命令
Linux uucp(Unix-to-Unix Copy)是一种用于在 Unix 和 Linux 系统之间传输文件的工具。
尽管现在大多数文件传输任务都依赖更现代的协议(如 FTP、SCP、rsync 等),但 uucp 在某些特定环境中仍具实用价值。
UUCP 是一种早期的 Unix 系统间通过串口线路进行通信的协议,其主要功能是实现文件的远程传输。
uucp 命令的运行机制
uucp命令依赖于uucico守护进程来处理文件传输。当用户发出uucp指令时,系统会将该任务加入队列,并由uucico负责执行实际的传输操作。uucico会在适当的时间尝试连接目标主机并开始传送文件。
语法格式
uucp [参数] 源文件 目标文件
- 源文件:待传输的文件或目录路径。
- 目标文件:目标主机上的文件或目录路径。
常见选项如下:
-
-c:不将文件复制到临时目录。 -
-C:强制将文件复制到缓存区域。 -
-d:在目标位置自动创建所需目录。 -
-f:若目标文件已存在则覆盖。 -
-j:输出当前作业的 ID 编号。 -
-m:传输完成后发送邮件通知。 -
-n:仅显示操作过程,不执行实际传输。 -
-r:递归传输整个目录及其内容。
完整参数列表:
- -c或--nocopy 不将文件复制到缓冲区。
- -C或--copy 将文件复制到缓冲区。
- -d或--directiories 在传输过程中,若需要则在[目的]创建目录。
- -f或--nodirectiories 若需创建目录则放弃本次传输。
- -g或--grade 设定此次传输任务的优先级。
- -I或--config 使用指定的uucp配置文件。
- -j或--jobid 输出作业编号。
- -m或--mail 传输完成后发送邮件通知结果。
- -n或--notify 传输结束后向指定用户发送邮件报告。
- -r或--nouucico 不立即启动uucico程序,仅将任务加入队列。
- -R或--recursive 若来源为目录,则递归复制整个目录结构。
- -t或--uuto 将最后一个参数识别为"主机名!用户名"。
- -v或--version 显示版本信息。
- -W或--noexpand 不添加当前目录到路径中。
- -x或--debug启用调试模式。
- --help 显示帮助信息。
示例说明
单个文件传输
假设我们要将本地的 example.txt 文件传输到名为 remote 的远程主机的 /home/user/ 路径下,可以使用以下命令:
uucp example.txt remote!/home/user/example.txt
其中,remote! 表示目标主机名称,后面是目标路径。
整个目录传输
如果希望复制一个目录及其中所有内容,可使用 -r 参数:
uucp -r mydir remote!/home/user/mydir
此命令将递归地将 mydir 目录及其子目录下的所有内容复制到远程主机的目标路径。
替换已有文件
若目标路径中已存在同名文件,可使用 -f 参数进行替换:
uucp -f example.txt remote!/home/user/example.txt
查看作业编号
如果我们希望获取此次传输任务的作业编号,可以加上 -j 参数:
uucp -j example.txt remote!/home/user/example.txt
执行后,系统将返回一个作业ID,可用于后续查询传输状态。
uucp 命令的局限性
虽然 uucp 在某些场景仍有用途,但也存在一些不足之处:
- 传输速度慢:由于最初设计用于低速串口连接,因此在网络环境较好的情况下,效率较低。
- 安全性差:传输过程中通常未加密,因此在现代网络中推荐使用 SCP 或 SFTP 等更安全的方式。
-
配置繁琐:
uucp涉及多个配置文件和参数设置,对新手而言学习成本较高。










