Para o GNU cp
e o GNU tar
(as implementações padrão na maioria das distribuições do Linux, incluindo o CentOS), ambos criam o arquivo no local. Eu tenho certeza que o mesmo acontece com a maioria das outras implementações também. Não é muito difícil escrever um script wrapper para torná-lo funcionalmente atômico. Não tenho certeza sobre o Windows, mas não penso que forneça mais garantias de que o POSIX faz para a atomicidade da operação do sistema de arquivos.
Também vale a pena notar também que mv
é apenas atômico se não ultrapassar um limite do sistema de arquivos, caso contrário, ele se torna equivalente a executar cp
e, em seguida, desvincular o arquivo de origem.