Se eu executar um mv
comando da linha de comando no OneFS (baseado em Isilon, FreeBSD), o que exatamente acontecerá em segundo plano e nos discos?
Os dados serão movidos fisicamente de setores para outros setores nos discos ou é apenas uma alteração nos links para esses arquivos no sistema de arquivos? Os dados no disco físico permanecem onde estão? Como os inodes estão envolvidos aqui?
Estou perguntando porque tenho um diretório enorme que contém mais de 50 TB de dados e é compartilhado na rede. Eu preciso mv
deste diretório em outro diretório dentro do mesmo sistema de arquivos. Eu queria parar de compartilhar mv
e compartilhar novamente. Não tenho certeza se isso será tão simples quanto pensei.
Alguma entrada?
Não, não há cópia de todo o arquivo. Cada arquivo é descrito por uma estrutura (na maioria dos sistemas de arquivos UNIX, é chamado de inode). Esta estrutura contém as informações sobre o arquivo (tamanho, data, onde encontrar seus blocos, permissão correta...), exceto o nome.
O nome de um arquivo está em um diretório que faz o mapeamento entre nomes de arquivo e inodes. Se você mover um arquivo, estará apenas suprimindo um mapeamento em um diretório e criando outro em um diretório diferente.
Alguns sistemas de arquivos podem ter algumas diferenças (em sistemas de arquivos FAT, as informações do arquivo estão no diretório, mas o sistema irá transferir todas as informações - alguns bytes - de um diretório para outro). Mas você tem todo o esquema.
Em sistemas de arquivos UNIX típicos, a estrutura do arquivo é separada do diretório e isso permite que você use vários nomes (eventualmente de diretórios diferentes) para um único arquivo (usando o comando)
ln
.