Unix上的递归移动实用程序?

前端之家收集整理的这篇文章主要介绍了Unix上的递归移动实用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有时我有两棵树曾经有相同的内容,但已经变得不同步(因为我移动了磁盘或其他).一个很好的例子是我从Fedora镜像上游包的树.

我想通过将所有文件从tree1移动到tree2来再次合并这两棵树.

通常我这样做:

  1. rsync -arv tree1/* tree2

然后删除tree1.

但是,这需要花费大量的时间和磁盘空间,并且能够更容易地执行:

  1. mv -r tree1/* tree2

换句话说,一个递归的举动.它会更快,因为首先它甚至不会复制,只是移动inode,其次我不需要删除最后.

这存在吗?

作为测试用例,请考虑以下命令序列:

  1. $mkdir -p a/b
  2. $touch a/b/c1
  3. $rsync -arv a/ a2
  4. sending incremental file list
  5. created directory
  6. ./
  7. b/
  8. b/c1
  9. b/c2
  10.  
  11. sent 173 bytes received 57 bytes 460.00 bytes/sec
  12. total size is 0 speedup is 0.00
  13. $touch a/b/c2

什么命令现在可以将a / b / c2移动到a2 / b / c2然后删除a子树(因为其中的所有内容已经在目标树中)?

根据gnu的mv的mv(1)手册页:

-u,– 更新仅当SOURCE文件比目标文件更新时才移动文件或目标文件丢失时

猜你在找的Bash相关文章