加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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文件比目标文件更新时才移动文件或目标文件丢失时

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读