mv: quando o arquivo resultante está disponível?

2

Suponha que um processo faça isso: mv um arquivo grande para um diretório de destino

E outro processo está aguardando esse arquivo no diretório de destino porque deseja ler seu conteúdo assim que possível. O sistema de arquivos assegura que o segundo processo apenas "veja" o arquivo quando estiver totalmente disponível?

Eu olhei para a página de manual para mv , mas não vi nenhuma garantia ...

    
por user1011471 24.02.2016 / 19:29

1 resposta

3

Isso dependerá, em grande parte, de os arquivos de origem e destino estarem no mesmo sistema de arquivos (nesse caso, rename(2) , † que é tão atômico quanto se pode obter) ou um sistema de arquivos diferente (não atômico) e um processo pode facilmente ver um arquivo incompleto, especialmente se o sistema, a rede ou o sistema de arquivos estiver lento).

† com base em um strace de mv que fiz anos atrás no Linux, então YMMV com diferentes implementações de mv .

    
por 24.02.2016 / 20:00

Tags