melhor maneira de sobrescrever?

3

Atualmente estamos fazendo um plano clássico.

Eu quero saber qual é o melhor?

Ambos os fileA e fileB existem, com tamanho de ~ 50-100M.

assume a mesma montagem NFS no Linux / mac

suponha que isto é uma sobregravação onde ambos os arquivos existem

# planA - we do this way
mv /pathA/fileA /pathB/fileB

# planB
rm /pathB/fileB; mv /pathA/fileB /pathB/fileB

# planB1 - I think is the same as planB, but not sure
unlink /pathB/fileB; ln /pathA/fileA /pathB/fileB
    
por Gang 30.12.2015 / 14:49

1 resposta

9

Quando se trata de arquivar I / O, a tarefa cara é movimentar os dados.

Se estiver dentro de um sistema de arquivos (o que deveria ser para que ln funcione), a diferença é discutível.

Em cada caso, tudo o que está acontecendo é que uma entrada de diretório está sendo modificada para apontar para um inode diferente. Isso será apenas uma diferença insignificante se melhor, então você está comparando 'o quão rápido os comandos são iniciados' realmente.

Mas com uma ressalva - o comando último deixará /pathA/fileA no lugar - é um link físico, fazendo com que ambas as entradas de diretório apontem para os mesmos dados.

Isso pode confundir as pessoas no futuro, porque se elas sobrescreverem o arquivoA, ele fará uma coisa, e se editar ele fará outra coisa.

Então, basta errar do lado do simples - ficar com apenas um mv . Não fará muita diferença no geral, e isso é o mais claro sobre o que você está realmente tentando realizar.

    
por 30.12.2015 / 14:53

Tags