Unix上的递归移动实用程序?
发布时间:2020-12-15 18:35:22 所属栏目:安全 来源:网络整理
导读:有时我有两棵树曾经有相同的内容,但已经变得不同步(因为我移动了磁盘或其他).一个很好的例子是我从Fedora镜像上游包的树. 我想通过将所有文件从tree1移动到tree2来再次合并这两棵树. 通常我这样做: rsync -arv tree1/* tree2 然后删除tree1. 但是,这需要花
有时我有两棵树曾经有相同的内容,但已经变得不同步(因为我移动了磁盘或其他).一个很好的例子是我从Fedora镜像上游包的树.
我想通过将所有文件从tree1移动到tree2来再次合并这两棵树. 通常我这样做: rsync -arv tree1/* tree2 然后删除tree1. 但是,这需要花费大量的时间和磁盘空间,并且能够更容易地执行: mv -r tree1/* tree2 换句话说,一个递归的举动.它会更快,因为首先它甚至不会复制,只是移动inode,其次我不需要删除最后. 这存在吗? 作为测试用例,请考虑以下命令序列: $mkdir -p a/b $touch a/b/c1 $rsync -arv a/ a2 sending incremental file list created directory ./ b/ b/c1 b/c2 sent 173 bytes received 57 bytes 460.00 bytes/sec total size is 0 speedup is 0.00 $touch a/b/c2 什么命令现在可以将a / b / c2移动到a2 / b / c2然后删除a子树(因为其中的所有内容已经在目标树中)?
根据gnu的mv的mv(1)手册页:
-u,– 更新仅当SOURCE文件比目标文件更新时才移动文件或目标文件丢失时 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |