我只是试图将一棵大树从一个磁盘移动到另一个磁盘,这太小了。现在,我有一些我无法真正理解的东西-看起来确实确实从源代码树中移走了一些文件,而其他文件只是被复制了。这很可能不是真的,我只是忽略了一些东西,就像检查目标磁盘上的空闲空间时所做的那样。:D
命令很简单mv source-dir destination-dir
,两个目录都位于不同的磁盘上。我正在使用mv (GNU coreutils) 7.4
。在手册页的任何地方都找不到以下问题的答案:
我认为该info
页面的简介可以回答您的所有问题:
它首先使用一些与cp -a相同的代码来复制所请求的目录和文件,然后(假设复制成功)将其删除。如果复制失败,则将复制到目标分区的部分删除。如果要将三个目录从一个分区复制到另一个分区,并且第一个目录的复制成功,但是第二个目录没有成功,则第一个将保留在目标分区上,第二个和第三个将保留在原始分区上。
由于数据已保留,因此恢复应该不是问题。我不知道它试图成为原子的程度(mkdir
例如,需要进行源检查),或者根本不在其域内(相对于内核),但是如果中断已经发生,而它已经删除了原子,则可能会损坏。资源。到那时,您已经在目标目录中有了一个很好的副本,因此简单的字节大小检查就可以解决问题。
编辑:我对使用创建的巨大文件(几个G)进行了一些测试dd
,但没有最终结果。从来没有设法只复制少数几个源—我要么取消了整个操作(太快了),要么后来由于磁盘缓存和良好的文件系统设计而根本没有任何机会(我的^ C总是在成功移动之后着陆) )。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句