得到斯蒂芬·基特(Stephen Kitt)的回答并讨论此命令作为潜在解决方案后:
sudo mv -i ~/my_data_on_60GB_partition/* /media/admin/my_data/
我决定推迟运行它,直到我对发生的事情有所了解,这个答案描述了我发现并最终完成的事情。
我正在使用mv
将文件复制到目标的Gnu ,然后只有复制操作成功,它才会删除原始文件。
但是,我想确认是否一次mv
执行一个序列的操作,如果是的话,原始文件夹的内容将被清晰地切成两部分,一部分移到目标位置,另一部分仍留在源文件中。可能会有一个文件在复制过程中被打断,这在两个目录之间将很常见-并且可能格式错误。
为了发现两个目录之间共有的文件,我运行了:
~% sudo diff -r --report-identical-files my_data_on_60GB_partition/. /media/admin/mydata/. | grep identical | wc -l
14237
结果表明,在源目录和目标目录中都有14237个相同文件的实例,我通过手动检查文件来确认-是的,两个目录中都有许多相同的文件。这表明只有在mv
复制大量文件后,它才执行源文件的删除。显示了info
对mv
命令的快速查找
它[ mv
]首先使用一些用于cp -a
复制请求的目录和文件的相同代码,然后(假设复制成功)将其删除。如果复制失败,那么将删除复制到目标分区的部分。
我没有运行命令,但怀疑是否尝试运行
sudo mv -i ~/my_data_on_60GB_partition/* /media/admin/my_data/
-i
覆盖之前的提示可能已触发14,000次以上。
因此,找出新创建的目录中的文件总数:
~% sudo find my_data_on_60GB_partition/ -type f -a -print | wc -l
14238
因此,如果新目录中总共有14238个常规文件,而源中有14237个原始文件,则意味着新目录中只有一个文件,而源中没有相应的相同文件。为了弄清楚那个文件是什么,我朝着源的方向运行了rsync:
~% sudo rsync -av --dry-run my_data_on_60GB_partition/ /media/admin/my_data
sending incremental file list
./
Education_learning_reference/
Education_learning_reference/Business_Education/
Education_learning_reference/Business_Education/Business_education_media_files/
Education_learning_reference/Business_Education/Business_education_media_files/Jeff Hoffman - videos/
Education_learning_reference/Business_Education/Business_education_media_files/Jeff Hoffman - videos/Jeff and David F interview/
Education_learning_reference/Business_Education/Business_education_media_files/Jeff Hoffman - videos/Jeff and David F interview/018 business plans-identifying main KPIs.flv
sent 494,548 bytes received 1,881 bytes 330,952.67 bytes/sec
total size is 1,900,548,824 speedup is 3,828.44 (DRY RUN)
快速检查确认这是格式错误的文件,该文件在源和目标上均存在,目标文件= 64MB,原始文件= 100MB。该文件及其目录层次结构仍由root拥有,并且尚未还原原始权限。
因此,总而言之:
- 所有
mv
从未到达的文件 仍返回其原始位置(显然)
- 所有
mv
完全复制的文件仍在源目录中保留其原始副本
- 仅部分复制的文件仍将原始文件放回源目录中
换句话说,所有原始文件仍然完好无损,在这种情况下,解决方案是简单地删除新目录!
Control-Z
(暂停)而不是时,养成习惯Control-C
。在这种情况下,您将能够看到当时正在传输的文件,从而知道哪个文件仅被部分复制。然后,您可以冷静地决定如何进行。(kill -stop
用于不在tty中的进程)。