与 mv /a/b /c/d 等效的 rsync 命令有哪些?

与 mv /a/b /c/d 等效的 rsync 命令有哪些?

rsync与 /a/b/ /c/d/ 等效的命令是什么mv,即将目录树从一个位置移动到另一个位置(可能在另一个文件系统上)?

也就是说,不只是复制,而是从原始位置删除文件。我想要使用的原因rsync是我希望能够恢复部分移动并能够限制带宽使用量。

答案1

此命令将同步从 /a/b 到 /c/d 的所有文件,并将保留权限、修改日期、符号链接,并将递归到目录中('-a' 或 '--archive' 可以完成所有这些操作,它与使用 '-rlptgoD' 相同,它们是所有这些操作的单独选项),-v 表示详细,'--remove-source-files' 将在目标上完全创建源文件后删除它们。

如果 /c/ 内的目录 d 不存在,则会创建该目录。

rsync -av --remove-source-files /a/b /c/d

如果您想移动到远程服务器,那么这将同步到远程服务器路径,“-z”将在传输过程中压缩文件数据。

rsync -avz --remove-source-files /a/b user@hostname_or_ip:/c/d

目录不会被“--remove-source-files”删除,因此您需要在 rsync 之后运行 rm -rf /a/b 来删除 /a/b/ 内的所有目录

在一行命令中你可以像这样把所有内容放进去

rsync -av --remove-source-files /a/b /c/d; if find /a/b/ -type f | read; then echo "Not all files were synced"; else rm -rf /a/b; fi

这将运行 rsync,然后检查是否还有任何文件,以防止在某些文件未完全同步时删除该文件夹,因此没有被删除,然后打印并非所有文件都已同步,或者如果文件夹中没有文件则删除该文件夹。

相关内容