如何在Linux上使用rsync命令复制目录和文件

使用Linux rsync命令从命令行复制文件夹/文件

rsync是Linux的一个文件传输程序,它允许你用一个简单的命令复制目录和文件,这个命令包括传统复制功能之外的附加选项。

rsync的一个有用的功能是,当你使用它复制目录时,你可以用系统的方式排除文件。 这样,如果您使用rsync进行文件备份,则只需备份您真正想要归档的文件,同时避免其他任何操作。

rsync示例

正确使用rsync命令需要您遵循正确的语法

rsync [OPTION] ... [SRC] ... [DEST] rsync [OPTION] ... [SRC] ... [USER @] HOST:DEST rsync [OPTION] ... [SRC] ... [ USER @] HOST :: DEST rsync [OPTION] ... [SRC] ... rsync:// [USER @] HOST [:PORT] / DEST rsync [OPTION] ... [USER @] HOST:SRC [ DEST] rsync [OPTION] ... [USER @] HOST :: SRC [DEST] rsync [OPTION] ... rsync:// [USER @] HOST [:PORT] / SRC [DEST]

上面提供的选项空间可以填充很多东西。 请参阅rsync文档页面的“ 选项摘要”部分以获取完整列表。

以下仅举几个例子来说明如何在这些选项中使用rsync:

提示:在所有这些示例中,粗体文本都不能更改,因为它是命令的一部分。 正如你所看到的那样,文件夹路径和其他选项是我们特定示例的自定义属性,所以在使用它们时它们会有所不同。

rsync /home/jon/Desktop/data/*.jpg / home / jon / Desktop / backupdata /

在上面的例子中,/ data /文件夹中的所有JPG文件都被复制到用户Jon桌面文件夹的/ backupdata /文件夹中。

rsync --max-size = 2k / home / jon / Desktop / data / / home / jon / Desktop / backupdata /

rsync的这个例子有点复杂,因为它被设置为复制文件,如果它们大于2,048 KB。 也就是说,只复制小于规定大小的文件。 可以使用k,mg来指示1,024乘数中的千字节,兆字节和千兆字节或者使用千位,千位或千位来使用1,000。

rsync --min-size = 30mb / home / jon / Desktop / data / / home / jon / Desktop / backupdata /

正如你在上面看到的那样,-- min-size也可以做到这一点。 在这个例子中,rsync只会复制30 MB或更大的文件。

rsync --min-size = 30mb --progress / home / jon / Desktop / data / / home / jon / Desktop / backupdata /

在复制非常大的文件时(例如30 MB或更大),尤其是在存在大量文件时,您可能希望看到复制功能的进度,而不是假定该命令已冻结。 在这些情况下,使用--progress选项来观察过程达到100%。

rsync --recursive / home / jon / Desktop / data / home / jon / Desktop / data2

--recursive选项提供了一个简单的方法来将整个文件夹复制到不同的位置,如我们的示例中的/ data2 /文件夹。

rsync -r --exclude =“* .deb / home / jon / Desktop / data / home / jon / Desktop / backupdata

您也可以复制整个文件夹,但排除特定文件扩展名的文件 ,例如上例中的DEB文件。 这一次,整个/ data /文件夹被复制到前面例子中的/ backupdata /中,但是所有的DEB文件都被排除在副本之外。