cp 和 mv 替代方案是否有更好的合并支持?

cp 和 mv 替代方案是否有更好的合并支持?

我正在寻找标准cpmv命令行工具的替代品,具体来说,我正在寻找如下功能:

  • 详细进度条/报告
  • 试运行支持
  • 支持合并目录
  • 当源文件和目标文件相同时无覆盖警告
  • 覆盖冲突解决(即重命名其中一个文件)
  • 一次复制到多个目标
  • 多线程(即,我在前台处理冲突解决时继续在后台复制)

因此基本上,该功能集与 Windows 8 资源管理器在复制或移动文件时可以执行的功能类似。

PS:rsyncwith--progress --recursive --remove-source-files --checksum --backup在合并目录方面有一定的用处,但还远远不够完美,因为它只删除源文件,而不是目录,而且在交互式解决冲突方面并没有太多的功能。

答案1

rsync 可以在本地用于复制/更新文件。例如:

rsync --progress -a sourcedir/ destdir/

如果你还没有,

sudo apt-get install rsync

rsync 还可以做很多其他的事情,请参阅手册页了解详细信息,并参阅 /usr/share/doc/rsync/ 了解示例。


ETA:根据问题中的“PS”,如果您需要更复杂的同步,请尝试:

sudo apt-get install unison unison-gtk

运行 unison-gtk 并设置配置文件。每次从该配置文件运行同步时,系统都会提示您当配置文件中的两个目录发生冲突时该怎么做。对于每个冲突,您都可以以交互方式为每个文件选择正确的操作(同步 aa 或跳过)。

答案2

您正在寻找rsync。至少,我相信它支持您需要的一切。

我使用开关来运行它-A,尽管手册页会向您显示您需要的一切。

在最坏的情况下,或者你找不到任何东西,你可以自己制作。

答案3

我编写了一个快速的小脚move.py本来处理目录合并,因为它在rsync工作时rsync执行的是复制而不是重命名,因此在处理大型数据集时速度非常慢:

答案4

除了其他建议的答案之外rsync,您还可以使用grsync。请参阅本指南以了解如何使用Linux 的 Rsync 和 Grsync 备份

相关内容