Por que posso mover com sucesso um arquivo no Linux enquanto ele está sendo gravado?

Esta questão eu acho que é técnico o suficiente para S / O, e provavelmente muito orientado para programaçãoAndroid. Estou intrigado sobre como os arquivos são manipulados no Android (ou Java ou Linux, conforme o caso), desde que eu fiz algo com o meu novo smartphone e gostaria de saber como isso aconteceu.

Eu estava transferindo um arquivo do meu laptop para o meu telefone Android, via Bluetooth. Vi o novo arquivo no explorador de arquivos, assumi que ele foi totalmente transferido e, assim, movi-o de/sdcard/bluetooth para/sdcard/torrents. Depois disso, percebi que, de fato, ainda estava sendo transferido. Para minha surpresa, ela foi concluída com sucesso, confirmada com um ícone de notificação no telefone e por uma verificação manual de MD5 em ambos os lados. Na maioria dos sistemas, a movimentação do arquivo causaria uma falha.

Qual é o motivo dessa transferência bem-sucedida? Estou ciente de que, em geral, o caminho do arquivo é separado para o local do arquivo no sistema de arquivos (nesse caso, um cartão SD). Eu imagino que o aplicativo Bluetooth tenha aberto um identificador para o arquivo e, quando fiz a transferência do arquivo, uma tabela de 'arquivos abertos' foi atualizada com um novo caminho. Esse recurso geralmente é verdadeiro em qualquer sistema Linux? Eu poderia fazer ummv em um arquivo sendo escrito e esperar que a cópia - em sua nova localização - esteja correta?

questionAnswers(1)

yourAnswerToTheQuestion