侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux uucp命令教程:如何在计算机之间复制和传输文件

Linux uucp命令介绍

uucp是Unix-to-Unix Copy的缩写,是一组计算机程序和协议,允许在计算机之间远程执行命令和传输文件、电子邮件和网络新闻。uucp命令是该套件中的一个程序,它提供了一个用户界面来请求文件复制操作。uucp命令最初是在1970年代和1980年代的Unix系统上开发的,后来也被移植到其他操作系统上,如DOS、OS/2、OpenVMS、AmigaOS、Mac OS和CP/M等。uucp命令可以在不同的系统之间复制文件,也可以通过中间系统进行转发。uucp命令不会立即执行文件传输,而是将其排队等待uucico守护进程处理;除非使用-r或--nouucico选项,否则uucico守护进程会立即启动。在下次呼叫远程系统时,文件将被复制。

适用的Linux版本

uucp命令适用于大多数Unix-like系统,如Linux、BSD、Solaris等。不同的Linux发行版可能使用不同的uucp实现,如HDB、BNU或Taylor uucp。要查看当前系统使用的uucp版本,可以使用--version选项。

uucp --version

如果当前系统没有安装uucp命令,可以使用相应的包管理工具进行安装。例如,在基于Debian的系统上,可以使用apt-get命令:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install uucp

在基于Red Hat的系统上,可以使用yum或dnf命令:

[linux@bashcommandnotfound.cn ~]$ sudo yum install uucp

或者

[linux@bashcommandnotfound.cn ~]$ sudo dnf install uucp

Linux uucp命令的基本语法

uucp命令的基本语法格式如下:

uucp [options] source-file destination-file
uucp [options] source-file... destination-directory

其中,每个文件参数可以是本地机器上的路径名,也可以是远程系统上的路径名,格式为system!path。在第一种形式中,第一个文件的内容被复制到第二个文件中。在第二种形式中,每个源文件被复制到目标目录中。如果要通过system1将文件从system2传输到system3,可以使用system1!system2!path或system3!system1!path的形式。

Linux uucp命令的常用选项说明

uucp命令支持以下常用选项:

选项说明
-c, --nocopy不将本地源文件复制到spool目录中。如果在uucico守护进程处理之前删除了源文件,则复制会失败。源文件必须对uucico守护进程和调用用户可读。
-C, --copy将本地源文件复制到spool目录中。这是默认选项。
-d, --directories在执行复制时创建所有必要的目录。这是默认选项。
-f, --nodirectories如果目标路径中有任何必要的目录不存在,则中止复制。
-R, --recursive如果任何源文件名是目录,则递归地将其内容复制到目标(必须也是目录)。
-g grade, --grade grade设置文件传输命令的优先级。优先级越高的任务越先执行。优先级从高到低为0...9 A...Z a...z。
-m, --mail通过mail(1)命令报告文件传输的完成或失败情况。
-n user, --notify user通过mail(1)命令向远程系统上的指定用户报告文件传输的完成或失败情况。
-r, --nouucico不立即启动uucico(8)守护进程;仅将文件传输排队等待后续执行。
-j, --jobid在标准输出上打印jobid。可以通过将jobid传递给uustat(1)命令的-k选项来取消任务。一些复杂的操作可能会产生多个jobid,这种情况下每个jobid会在单独的一行上打印。

Linux uucp命令的实例

以下是一些使用uucp命令的实例:

将本地文件复制到远程系统

要将本地文件file1复制到远程系统sys1上的~user1目录中,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp file1 sys1!~user1

将远程系统上的文件复制到本地

要将远程系统sys2上的~user2目录中的file2复制到本地的当前目录中,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp sys2!~user2/file2 .

将多个文件复制到远程系统上的目录中

要将本地的file3和file4复制到远程系统sys3上的~user3/dir目录中,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp file3 file4 sys3!~user3/dir

通过中间系统转发文件

要将远程系统sys4上的user4/file5复制到远程系统sys5上的user5/file6,可以通过中间系统sys6进行转发,使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp sys6!sys4!~user4/file5 sys6!sys5!~user5/file6

或者

[linux@bashcommandnotfound.cn ~]$ uucp sys5!sys6!sys4!~user4/file5 sys5!~user5/file6

创建目标路径中不存在的目录

要将本地文件file7复制到远程系统sys7上的~user7/newdir目录中,如果该目录不存在,则创建它,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp -d file7 sys7!~user7/newdir

递归地复制目录及其内容

要将本地目录dir1及其内容递归地复制到远程系统sys8上的~user8/dir2目录中,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp -R dir1 sys8!~user8/dir2

设置文件传输的优先级

要将本地文件file8复制到远程系统sys9上,并设置文件传输的优先级为A(较高),可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ uucp -g A file8 sys9!

通过邮件报告文件传输的结果

要将本地文件file9复制到远程系统sys10上,并在完成或失败时,会通过mail(1)命令向本地用户发送一封邮件

[linux@bashcommandnotfound.cn ~]$ uucp -m file9 sys10!file10

如果想向远程用户发送邮件报告,可以在uucp命令后加上-n user选项,其中user是远程用户的名称,例如:

[linux@bashcommandnotfound.cn ~]$ uucp -n user3 file1 sys1!file2

如果想同时向本地用户和远程用户发送邮件报告,可以在uucp命令后加上-m和-n user选项,例如

[linux@bashcommandnotfound.cn ~]$ uucp -m -n user3 file1 sys1!file2

Linux uucp命令的注意事项

  • 在使用uucp命令之前,需要配置好uucp的相关参数,如远程系统的名称、地址、密码、权限等。这些参数通常存储在/etc/uucp或/var/spool/uucp等目录下的一些配置文件中,如Systems、Devices、Permissions等。具体的配置方法可以参考uucp(5)和uucico(8)等手册页。
  • 在使用uucp命令时,需要注意路径名中的~符号和shell元字符(如? * [ ])的含义和作用。~符号表示UUCP公共目录或用户主目录,而shell元字符可以用于匹配多个文件名。这些符号都是在相应的系统上解释的,因此需要用引号防止本地shell先解释它们。
  • 在使用uucp命令时,还需要注意源文件和目标文件之间是否存在冲突或覆盖的情况。如果源文件和目标文件具有相同的路径名,但位于不同的系统上,则uucico守护进程会在传输完成后删除源文件。如果源文件和目标文件具有不同的路径名,但位于同一个系统上,则uucico守护进程会在传输完成后将源文件重命名为目标文件。如果想保留源文件或避免覆盖目标文件,则需要使用不同的路径名或选项。
0

评论区