Quando os arquivos estão sendo movidos eles são armazenados em uma memória?

6

Quando eu movo um arquivo usando o comando mv , este arquivo é lido primeiro, totalmente armazenado em cache em uma memória e salvo como outro arquivo? Ou é o mesmo que escrever

while read line; do
    echo "$line" >> output_file
done < input_file

Da mesma forma com cp . Ao copiar um arquivo para outro, o arquivo é primeiramente armazenado em cache na memória e depois copiado?

    
por Superian007 14.06.2016 / 17:47

1 resposta

17

Geralmente, um mv está mais próximo de um renomear do que de uma cópia. Em um sistema de arquivos do tipo unix clássico, os inodes que contêm os dados do arquivo não serão replicados se a origem e o destino estiverem no mesmo ponto de montagem. Em vez disso, é criado um novo nome de arquivo que aponta para os mesmos inodes e o nome do arquivo antigo é desvinculado.

Se o mv for para outro ponto de montagem, então será uma cópia real. Qual fração disso está na RAM de cada vez é um detalhe do sistema operacional cuja transparência para o usuário não está definida.

Apenas para dar um exemplo, se os dados foram considerados realmente copiados para um novo local, o arquivo pode ser, para o usuário, conceitualmente 'gravado' no disco. Mas poderia, no nível do SO, estar residindo em um buffer que ainda não foi liberado para o hardware.

    
por 14.06.2016 / 17:57