Vamos começar com a afirmação de que mv
nem sempre é atômico.
Para qualquer arquivo individual, a movimentação ou renomeação realizada por mv
é atômica desde que o arquivo seja movido dentro do mesmo sistema de arquivos. A atomicidade não garante que o arquivo esteja apenas em um lugar ou outro; É bem possível que o arquivo possa estar presente no sistema de arquivos em ambos os lugares simultaneamente por "um curto período de tempo".
mv
definitivamente não é atômico quando a movimentação que realiza é de um sistema de arquivos para outro, ou quando um sistema de arquivos remoto não pode implementar a operação mv
localmente. Nesses casos, mv
é implementado pelo equivalente a cp
seguido por rm
.
Agora, vamos para a questão da atomicidade em vários arquivos. mv
é, na melhor das hipóteses, apenas atômico por arquivo, portanto, se você tiver vários arquivos para mover juntos, a implementação será de tal forma que eles serão movidos um de cada vez.
Se você realmente precisar de um grupo de arquivos para aparecer em um destino simultaneamente, considere colocá-los em um diretório e mover esse diretório. Este único objeto (o diretório) pode ser movido atomicamente.