首页 > 文章列表 > Linux下如何通过rsync实现目录间的高效文件传输

Linux下如何通过rsync实现目录间的高效文件传输

文件 linux rsync
432 2024-03-26

如何在Linux中使用rsync在目录之间高效传输文件

Rsync是一个命令行实用程序,以其在Linux中的数据同步特性而闻名。您可以使用它来同步相同或不同系统上的文件。此外,它还提供了文件压缩、加密、选择性同步等功能,使其优于其他工具。它可以比较源目录和目标目录,以便只从源目录传输新添加和更新的文件。

所有这些功能有助于减少等待时间并提高工作效率。然而,许多Linux用户对rsync的功能不熟悉,也不了解它在高效文件传输方面的优势。本文将简要介绍如何在Linux系统中使用rsync高效地在目录之间传输文件。

如何使用Rsync在Linux中的目录之间进行有效的文件传输

在Linux中使用rsync有几种方法,因此我们将进一步划分这一部分来解释其在不同场景中的用法。

Rsync安装

虽然rsync实用程序预装在大多数Linux系统中,但您可以通过运行以下命令来安装它:

sudo apt install rsync—y

他说:

现在,检查已安装的rsync版本。

rsync——版本

他说:

完成后,运行以下命令以开始同步源和目标:

Rsync-o源目标

他说:

    • 源是要从中同步文件的目录。
    • Target是要存储这些文件的目标目录。

本地文件传输

您可以使用rsync通过以下命令在同一系统中复制粘贴文件:

Sudo rsync-av源路径/目标路径/

他说:

    • “-a”选项代表在传输过程中保留文件属性的存档。
    • “—v”用于详细模式,在该模式中,您可以看到正在传输的文件。

例如,让我们使用它将文件从“Downloads”目录复制到“Document”目录:

sudo rsync—av~/下载~/文档

他说:

远程文件传输

您可以主要使用rsync在通过网络连接的两台机器之间远程传输文件。为此,您需要使用以下给定语法指定远程主机:

Rsync-av-e ssh User@Remote_host:/路径/至/源//路径/至/目标/

他说:
使用”—e ssh”选项,您可以告诉系统专门使用安全shell或SSH进行此文件传输。

从目标目录中删除文件(源目录中不存在)

假设您希望使两个目录相同并包含相似的文件。在这种情况下,您必须删除目标目录中存在的额外文件(如果有的话)。幸运的是,在rsync中,您可以使用”——Delete”选项来执行此操作。要了解如何操作,请执行以下命令:

rsync—av——删除/path/to/source//path/to/target/

他说:

传输期间删除文件

在传输整个目录时,您可能需要排除某些文件或子目录。因此,您可以通过以下方式使用”——exject”选项:

rsync—av——排除’文件名’/path/to/source//path/to/target/

他说:

空运行

当对大目录使用rsync时,您应该先进行试运行。这样,系统演示了在不传输文件的情况下该命令会做什么。但是,这可以帮助您防止传输任何不需要的文件。要执行空运行,请使用以下命令中的”——dry—run”选项:

rsync—av——干运行/path/to/source//path/to/target/

他说:
例如,在将文件从”Downloads”目录同步到”Documents”目录之前,执行一次空运行:

Rsync-av–演练~/下载~/文档

他说:

显示进度指示器

由于某些用户喜欢使用进度指示器来查看其传输进度,因此可以使用以下命令启用它:

rsync—av——progress source/target/

他说:
以前面的示例为例,使用进度指示器,您将得到如下图所示的结果:

结论

Rsync是Linux中在目录之间传输文件的强大工具。这个博客解释了它的各种用例,例如本地和远程数据同步。此外,它还具有多个子命令,以促进一些功能,如在传输过程中排除文件和从目标删除文件。尽管有这些功能,用户仍然可能出错。因此,对于大文件传输,您应该始终执行预演。