linux用rsync可断点续传、实时进度、绕过缓存;dd支持块级精准复制与校验;windows用robocopy稳定高效、多线程、带日志,xcopy轻量但无续传。

在传输单个几GB甚至上百GB的视频、镜像或数据库备份文件时,图形界面拖拽常卡死、中断后无法续传、进度不透明,必须用命令行工具精准控制复制行为。
Linux下用rsync高效复制大文件
方法一:基础带进度的归档复制
执行 rsync -ah --progress /path/to/largefile.bin /mnt/backup/。-a保证权限和时间戳不丢,-h让大小显示为GB而非字节,--progress实时刷新百分比和剩余时间。
方法二:断点续传+自动跳过未变更部分
加--partial --inplace参数:rsync -ah --progress --partial --inplace /path/to/largefile.bin /mnt/backup/。中断后重跑该命令,rsync会直接从断点继续写入,【不会重新下载整个文件】,且若目标文件已存在且内容一致,会跳过复制。
方法三:绕过缓存提升吞吐(仅限SSD/NVMe)
添加--no-whole-file和--compress:rsync -ah --progress --partial --inplace --no-whole-file --compress /path/to/largefile.bin /mnt/backup/。前者避免整块加载,后者对压缩率高的文件(如日志、文本)可减少IO量,但对已压缩视频无效。
Linux下用dd精准控制块大小复制
第一步:确认源文件路径和目标设备是否就绪
运行ls -lh /path/to/source.img查看大小,用df -h /mnt/backup确认目标空间充足且挂载正常。
第二步:执行带进度的大块复制dd if=/path/to/source.img of=/mnt/backup/target.img bs=8M status=progress conv=fdatasync。【bs=8M是关键,太小(如512K)会导致频繁IO,太大(如64M)可能吃光内存】,conv=fdatasync确保每次写入都刷盘,避免断电丢数据。
第三步:校验复制结果
分别对源和目标执行sha256sum /path/to/source.img和sha256sum /mnt/backup/target.img,两行输出必须完全一致才算成功。
Windows下用robocopy实现稳定大文件复制
robocopy是Windows 7及以上系统自带工具,比拖拽可靠得多,支持断点续传、多线程和详细日志。
方法一:基础完整复制(含空目录)
打开CMD,输入:robocopy "C:\Data\BigFile.iso" "D:\Backup\" /ZB /R:3 /W:5。注意源路径必须带文件名,目标路径末尾要加反斜杠;/ZB启用重启模式并自动切备份模式读取被占用文件。
方法二:提速到极限(SSD适用)
加/MT:16参数:robocopy "C:\Data\BigFile.iso" "D:\Backup\" /ZB /R:3 /W:5 /MT:16。16线程适合NVMe盘,机械硬盘请改用/MT:4,否则磁头疯狂寻道反而更慢。
方法三:生成可审计日志
追加/LOG+:C:\copy_log.txt /NP /V:robocopy "C:\Data\BigFile.iso" "D:\Backup\" /ZB /R:3 /W:5 /MT:16 /LOG+:C:\copy_log.txt /NP /V。/NP关闭进度条干扰,/V开启详细模式,日志里会明确标出“100% ”表示完成、“FAILED”表示失败项。
Windows下用xcopy做轻量级大文件复制
xcopy比robocopy更轻,适合U盘或本地硬盘间快速复制,但不支持断点续传。
执行xcopy "E:\Archive\VM.ova" "F:\Temp\" /Y /J /I。【/J必须加,它禁用缓冲区缓存,直接写入磁盘,避免大文件复制中途因缓存溢出卡死】,/Y跳过覆盖提示,/I强制将目标识别为目录(即使不存在也会自动创建)。
若需预估耗时,先加/L参数试运行:xcopy "E:\Archive\VM.ova" "F:\Temp\" /Y /J /I /L,它只列出将要复制的文件而不真正执行,输出中会显示总大小和文件数,心里有底再删掉/L正式跑。











