Этот ответ относится к NTFS
запись в исходном файле останется там?
Да. Запись MFT файла (нет "оригинала" и "копии") остается там. ОС нужно только:
- обновить идентификатор родителя в записи MFT
- удалить элемент из дочерних элементов старого родительского каталога
- добавить элемент в дочерние элементы нового родительского каталога
Каждая запись MFT каталога имеет атрибут $INDEX_ROOT
который перечисляет несколько дочерних элементов , а остальные сохраняются где-то еще (это где-то находится с помощью одного или нескольких атрибутов $INDEX_ALLOCATION
).
Когда ОС перемещает файл внутри той же файловой системы, эти "списки дочерних элементов" (хотя технически они являются деревьями B+) обновляются.
Обратите внимание, что может быть возможно вырезать оставшиеся записи из свободного пространства индексных записей.
Мне также любопытно, что произойдет, если я перенесу его в другую файловую систему
Перемещение файла в другую файловую систему рассматривается как:
- копия в новую файловую систему
- мгновенное удаление файла из исходной файловой системы
В этом случае запись MFT также сохраняется, но она помечается как удаленная. Он может быть перезаписан при создании новых файлов и необходимости дополнительных записей MFT.