在 Linux 或 macOS 终端中执行 mv
(移动文件)操作时,如果过程被中断(例如,按 Ctrl + C
、系统崩溃、断电等),会出现以下几种情况:
- 文件未开始移动
- 如果
mv
还没来得及开始移动文件(比如命令刚输入,还未执行),则不会有任何影响。
- 如果
- 文件部分移动(适用于跨文件系统的移动)
- 如果
mv
命令是在同一文件系统中操作,通常是通过重命名(修改文件路径)来实现的,几乎是瞬间完成的,所以几乎不会有中断的影响。 - 但如果是跨文件系统(比如从
/home
移动到/mnt/usb
),mv
实际上会先复制文件,然后删除源文件。 - 这时如果中断:
- 部分文件可能已经复制到目标位置,但未完全复制(成为不完整的文件)。
- 源文件可能仍然存在,或者部分被删除(但一般
mv
不会删除未完全复制的文件)。 - 目标目录中可能会出现临时文件或部分数据。
- 如果
- 文件夹移动中断
- 如果是移动整个文件夹,一部分文件可能已经移动,而另一部分仍在源目录中。
- 需要手动检查源目录和目标目录,确认哪些文件缺失,并重新执行
mv
。
解决方法:
- 重新执行
mv
:如果文件仍在原位置,重新执行mv
。 - 使用
rsync
代替mv
(适用于大文件):rsync
具有断点续传功能,例如:
rsync -av --remove-source-files /source/ /destination/