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