Почему я могу успешно переместить файл в Linux во время записи?

Этот вопрос я считаю достаточно техническим для S/O и, вероятно, слишком -ориентированным на программирование для Android . Я заинтригован тем, как файлы обрабатываются в Android (, Java или Linux, в зависимости от обстоятельств ), так как я что-то делал со своим новым смартфоном, и мне было бы любопытно узнать, как это произошло.

Я передавал файл со своего ноутбука на телефон Android через Bluetooth. Я увидел новый файл в проводнике, предположил, что он полностью перенесен, и поэтому переместил его с /sdcard/bluetoothна /sdcard/torrents. После того, как я это сделал, я заметил, что он на самом деле все еще передается. К моему удивлению, он успешно завершился, что подтверждается значком уведомления на телефоне и ручной проверкой MD5 с обеих сторон. В большинстве систем перемещение файла вызвало бы сбой.

В чем причина такого успешного перехода? Я знаю, что в целом путь к файлу отличается от расположения файла в файловой системе (, в данном случае на SD-карте ). Я предполагаю, что приложение Bluetooth открыло дескриптор файла, и когда я переместил файл, таблица «открытых файлов» была обновлена ​​​​с новым путем. Эта функция вообще применима к любой системе Linux? Могу ли я выполнить mvв записываемом файле и ожидать, что копия -в его новом местоположении -будет правильной?

19
задан Shubham Jain 3 April 2018 в 16:21
поделиться