A operação de leitura será bem-sucedida, independentemente do tempo necessário para concluir a operação de leitura.
Por que e como isso funciona?
Quando a operação de leitura é iniciada, o Inode do arquivo é usado como um identificador do qual o conteúdo do arquivo é lido.
Ao mover outro arquivo para o arquivo de destino, o resultado será um novo inode, o que significa que o conteúdo físico do arquivo no disco será colocado em outro lugar e o conteúdo original do arquivo que está sendo lido não será ser tocado.
A única coisa que eles têm em comum é seu caminho / nome de arquivo, enquanto a localização inode e phyiscal subjacente no disco muda.
Quando a operação de leitura terminar (dado que nenhum outro processo ainda possui um identificador de arquivo aberto no arquivo antigo e não há outros hardlinks que façam referência a seu inode), os dados antigos serão descartados.
Quando a operação de movimento estiver concluída, o arquivo terá um novo número de índice de inode.
Você pode exibir o número de índice do inode dos arquivos usando ls -i /tmp/some-file
.
Pela mesma razão descrita acima, é possível excluir arquivos que ainda estão sendo usados por um aplicativo, já que os aplicativos que usam o arquivo apenas lerão do inode (apontando para o conteúdo real do arquivo no disco) enquanto o arquivo A referência dos arquivos no sistema de arquivos é deletada.