将文件从一个位置复制到另一个位置是一项非常基本的任务,可以使用 cp 命令轻松实现。 但是,有时,您必须多做一点。 这是 rsync 命令的用武之地,尤其是在您传输较大文件时。 Rsync(远程同步)是一个基于 Linux 的命令行工具,可用于在本地和远程服务器之间同步和复制文件。 它允许在同一台计算机上的两个目录之间、同一网络上两台不同计算机的目录之间、远程系统上的两个目录之间同步文件。
rsync 的主要优点是它不是盲目地复制整个内容,而是仅分析和传输源和目标之间的差异,从而可能节省系统资源和带宽。 rsync 的其他一些优点如下:
- 传输前压缩文件
- 传输数据时可以查看进度条
- 复制过程可以暂停并稍后恢复
- 允许通过 SSH 连接传输
在本文中,我们将解释如何在 Linux 中使用 rsync 复制数据。 我们将使用 Debian 10 来描述本文中提到的过程。
Rsync 的安装
默认情况下,大多数 Linux 操作系统都安装了 Rsync。 但是,如果未安装,则可以按照以下步骤进行安装:
进入系统中的终端应用程序 活动 Debian 桌面左上角的选项卡。 然后在搜索栏中输入 终端. 当终端图标出现时,单击它以启动它。
现在在终端中执行以下命令来安装 rsync 实用程序:
$ apt install rsync
使用 Rsync
每个 rsync 命令都以 同步 后跟一个选项,您可以在其中指定各种参数。 Rsync 提供了许多选项,让您可以控制来塑造传输规范。 然后有一个源和目标取决于它们是远程机器还是本地机器。
rsync 的基本语法是:
$ rsync [option] [source] [destination]
与 rsync 命令一起使用的一些常规选项:
- -v : 冗长
- -一个 : 归档模式,它允许递归复制文件并保留符号链接、文件权限、用户和组所有权和时间戳
- -和 : 压缩数据
- -H : 人类可读的,它以人类可读的格式输出数字
- –最大尺寸=SIZE,以指定的最小 SIZE 传输文件
- –最小尺寸=SIZE,传输指定最大SIZE的文件
现在我们将解释一些使用 rsync 和这些选项的示例。
将文件和目录复制到本地服务器
本地复制文件
您可以将单个或多个文件从源目录复制到同一台机器上的目标目录。 该示例是复制所有 .jpg 文件来自 ~/下载 目录到 〜/文件 目录使用以下命令:
$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents
运行上述命令后,所有 .jpg 源目录中的文件 /home/tin/下载 将被复制到目标目录 /家/锡/文件.
在上面的例子中,我们使用了类似的选项 -和 用于压缩, -v 对于详细输出和 -H 用于人类可读的输出。
本地复制目录
与文件类似,您也可以使用 rsync 命令复制整个文件夹和目录中包含的文件。 一个例子是复制所有文件 ~/下载 目录到 〜/文件 目录使用以下命令:
$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents
将文件复制到远程服务器
您可以将单个或多个文件从源目录复制到远程计算机上的目标目录。 例如,要将文件从本地复制到远程计算机,请使用以下命令语法:
$ rsync [options] [local path] [user]@[remote server]:[remote path]
根据最大大小复制文件
您还可以指定可以使用 rsync 从源复制到目标的文件的最大大小。 为此,请使用以下命令语法:
$ rsync --max-size=”” [source] [destination]
一个例子是从源复制最大大小为 4000K 的文件 ~/下载 到目的地 〜/文件 目录。 在这种情况下,大于 4000k 的文件将不会被复制到目的地。
$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/
根据最小大小复制文件
同样,您还可以指定可以使用 rsync 从源复制到目标的最小大小。 为此,请使用以下命令语法:
$ rsync --min-size=”” [source] [destination]
一个例子是从源复制最大大小为 2M 的文件 ~/下载 到目的地 〜/文件 目录。 大小小于 2M 的文件将不会使用 rsync 进行复制。
$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/
查看进度
您还可以在使用 rsync 复制文件时查看进度。 添加 -进步 rsync 命令后面的标志,如下所示:
$ rsync --progress [source] [destination]
一个例子是在从源复制文件时查看进度 ~/下载 到目的地 〜/文件 目录:
$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents
排除文件
您还可以在使用 rsync 将文件从源复制到目标时排除某些文件。 一个例子是在从源复制文件时排除所有 .pdf 文件 ~/下载 到目的地 〜/文件 目录。
rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents
通过输入以下命令,所有文件都将从源复制到目标,除了 .pdf 文件。
这就是全部! 我们已经解释了 rsync 实用程序在本地和远程不同目录之间复制文件的基本用法。 我们还解释了一些常见且有用的 rync 选项。 除了这些之外,还有很多选项可以用来控制传输行为的各个方面。 要使用这些选项,请参阅 rsync 手册页。