Принципиально это работает следующим образом. При операции перемещения каждый файл в источнике удаляется, как только он был успешно скопирован в место назначения.Когда вы прерываете операцию перемещения во время передачи (обычно большего) файла, файл назначения оказывается неполным (это, на мой взгляд, неудачное поведение Linux — скорее, неполная копия, т. е. поврежденный файл, должна быть удалена) , однако исходный файл сохраняется.
Второе соображение заключается в том, что Linux широко использует оперативную память для буферизации операций передачи файлов. Это означает, что контент сначала кэшируется в оперативной памяти, а только потом физически с некоторой задержкой записывается на целевой диск. Из-за этого механизма кажется, что копия закончена раньше, чем она есть на самом деле. Как только все файлы будут прочитаны в кэш, копирование считается завершенным. Затем операционная система в фоновом режиме продолжит запись файлов на диск.
То, что у вас повреждены файлы, заставляет меня подозревать, что вы, возможно, слишком рано удалили диск exfat. Возможно, вы физически удалили свой диск после того, как система сообщила вам, что ваша операция перемещения была отменена. Система говорит об этом, но на самом деле физические операции записи могли все еще выполняться в фоновом режиме на основе кэширования, которое я описал выше.
Это основная причина, по которой вам всегда нужно отключать диски после их отключения с помощью программного обеспечения. Если вы сначала попытаетесь отключиться с помощью программного обеспечения, система предупредит вас, если физическое удаление еще небезопасно, очистит кеш и сообщит, когда безопасно удалить диск.
Рекомендация: лучше копировать, а не перемещать большой набор файлов, а затем удалять исходный код после завершения копирования. Если вы отмените, все исходные файлы останутся нетронутыми.