linux 之 mv

缘起

mv是多么简单的一个命令啊,但是,获取有些东西你真的不知道。

一个同事mv big_dir_of_small_file to_other_disk ; 明明看着目标地址的空间使用在增加,但就是不见源地址的空间使用在减少,为什么呢?

lsof 查了一下,移走的文件没有立即删除。那就应该是全部移完之后再删除了。

因为文件实在太多,如果中断了程序,会是什么结果呢?

猜测:

  1. 删除移过的文件,保留没有移动的文件
  2. 那么,移动一半的文件是删除还是不删除呢?

参看: http://lingrok.org/xref/coreutils/src/mv.c

解疑:

其实代码很简单,就是先copy,最后在删除,根本没处理执行一半时被中断做何处理;所以,如果中断的话,就是:copy多少算多少,不删除任何文件。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据