Linux 使用rsync拷贝文件
显示进度条
rsync
可以显示进度条,您可以使用 --progress
或 -P
选项来显示每个文件的传输进度和已完成文件的统计信息。
显示进度条的常用选项:
-
--progress
选项- 使用
--progress
显示每个文件的传输进度信息:
rsync -av --progress /src/ /dest/
-a
:归档模式,表示递归拷贝并保持文件权限、时间戳等。-v
:详细模式,显示更多输出信息。--progress
:显示文件传输的进度条。
- 使用
-
-P
选项-P
选项是--progress
和--partial
的组合。它不仅显示进度条,还允许在中断时保存部分传输的文件,以便稍后恢复:
rsync -avP /src/ /dest/
使用
-P
更为常用,因为它还处理未完成的文件传输。 -
--info=progress2
选项--info=progress2
是一种改进的方式,它不仅显示每个文件的进度,还会显示整个传输的整体进度,包括已传输的总字节数和百分比:
rsync -av --info=progress2 /src/ /dest/
这种方式非常适合在拷贝大量文件时显示总体的传输进度,而不仅仅是单个文件的进度。
示例:
rsync -avP --info=progress2 /src/ /dest/
-avP
:显示进度条并保存未完成的传输。--info=progress2
:显示整个传输的进度。
这样,在使用 rsync
拷贝文件时可以获得详细的传输进度信息。
断点续传
rsync
是一个非常强大的文件同步工具,支持断点续传功能。以下是 rsync -av /src /dest
命令在中断后重新执行的行为说明:
1. 断点续传功能
当使用 rsync
进行文件同步时,rsync
会检查目标目录中已经存在的文件,并且会只传输源目录中那些已更改或不存在的文件。这样,在进行同步时,rsync
只会复制或更新那些真正需要复制的文件。
2. 中断和恢复
-
中断时正在复制的文件:如果
rsync
在进行文件复制时中断(例如由于网络问题或手动停止),已经复制到目标目录的部分文件不会被重新复制。rsync
会在下次执行时检查这些文件的状态,并且仅会重新复制那些未完全传输的文件或有变动的文件。 -
文件恢复:当你重新执行
rsync -av /src /dest
时,rsync
会重新开始同步,但由于它只传输必要的部分,所以在大多数情况下,中断时正在复制的文件会从中断点恢复,而不是从头开始复制。rsync
会比较源目录和目标目录中的文件,只有在需要时才会继续传输。
3. 文件的完整性
-
检查文件:
rsync
会通过文件的大小和修改时间来比较文件。如果在上次传输中有任何文件未完全传输,rsync
会检测到这些差异并重新传输部分内容。 -
校验和检查:如果使用了
-c
选项(即rsync -avc /src /dest
),rsync
会计算每个文件的校验和来确保文件的完整性。这会增加额外的检查时间,但可以确保文件在中断后完全一致。
4. 示例
rsync -av /src /dest
在这个命令中:
-a
选项表示归档模式,保留文件的权限、时间戳等信息,并递归复制子目录。-v
选项表示详细输出,以显示复制的过程。
如果在中断后重新执行相同的命令,rsync
会自动检查和恢复中断时的状态。