有没有好的文件复制工具?

Sev*_*Tux 8 usb-drive

复制对话卡在了还剩 0 秒...

每当我尝试将大文件复制到我的 U 盘(以任何格式)时,它总是在最后一刻停止。它在很长一段时间后完成。

我在Ask Ubuntu 上搜索了类似的帖子,得到了很多,但没有一个有很好的解决方案。

那么......在Windows上有没有像Teracopy这样的替代复制工具?

或者有什么我可以做的修复吗?

在此处输入图片说明

小智 7

您看到复制发生的原因是对 USB 驱动器的写入是异步的

当您复制文件时,它实际上是将其复制到 USB 驱动器的缓冲区中,该缓冲区位于计算机的 RAM 中。副本的第一部分非常快,因为它只是进入缓冲区。数据被刷新从缓冲区到 USB 驱动器的速度要慢得多。一旦缓冲区填满,它必须等待一些数据刷新到磁盘,然后才能将更多数据放入缓冲区,因此副本会立即减慢速度,有效地达到 USB 驱动器的速度。将所有文件放入缓冲区后,文件似乎已被复制。然而,并非所有数据都已从缓冲区刷新到 USB 磁盘本身。一些复制程序只是返回并让刷新在后台进行。有些会等到所有数据都被刷新,这就是为什么它会在一段时间内保持 100%。

您可以将磁盘切换到同步模式,这意味着所有数据都会立即写入 USB 驱动器,而无需使用缓冲区。这会给人一种更顺畅的数据传输的印象,但实际上最终可能会导致整体速度降低。

如果您从命令行手动挂载磁盘,则可以添加-o sync.

如果使用 fstab 挂载它,则可以添加该sync选项。

如果您在 GUI 中访问它时依赖 Ubuntu 为您挂载它,则可以在挂载后从命令行修改挂载选项:

sudo mount -o remount -o sync /media/yourname/diskname
Run Code Online (Sandbox Code Playgroud)

  • 这是*的*答案。 (2认同)

cl-*_*box 6

你不应该太担心这个。
也许您的 U 盘“质量较低”。
关于时间的对话输出具有误导性。

其他复制工具可能有不同的输出行为,
但它们不会提高 USB 驱动器的写入速度。
最重要的是,最终复制操作成功。

您可以做的是优化磁盘的输入/输出调度程序。

安装gksu(当您还没有安装时)以geditroot身份编辑文件:

sudo apt-get install gksu  
Run Code Online (Sandbox Code Playgroud)

现在优化各种磁盘类型的所有正在运行的进程的优先级:

gksudo gedit /etc/udev/rules.d/60-schedulers.rules
Run Code Online (Sandbox Code Playgroud)

将以下行粘贴到这个空文件中,然后保存文件:

# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"  
Run Code Online (Sandbox Code Playgroud)

您所做的更改在重新启动操作系统后生效。

另外... Ubuntu 存储库中提供了另一种复制解决方案:

sudo apt-get install dirdiff  
Run Code Online (Sandbox Code Playgroud)

现在从终端启动该工具以比较或复制文件和文件夹:

dirdiff
Run Code Online (Sandbox Code Playgroud)

dirdiff是一个图形用户界面diff最多可以处理 5 棵树。它显示一个主窗口,其中包含树之间不同的文件列表,并带有彩色方块以指示版本的相对年龄。菜单允许您在另一个窗口中显示任意两个版本之间的差异。另一个菜单允许您将文件和文件夹从一棵树复制到另一棵树。

总结:最重要的是U盘的质量和它的写入速度能力!