Normally on a local system a "mv" is instantaneous regardless of file size because it's only updating the inode/file table.
Exatamente. Eu imagino que você vai querer chamar renomear / mv do host que contém o sistema de arquivos.
Estou executando um script Bash no Cygwin, mas essa questão se aplica mais amplamente.
Eu tenho um arquivo remoto: //someremoteserver/somefile.db
Esse caminho "//" está sob o Cygwin - é essencialmente um nome de caminho UNC em uma rede Windows (neste caso), então chame-o de Samba.
O arquivo é grande: 50 GB.
Quero renomear tudo no final remoto:
mv //someremoteserver/somefile.db //someremoteserver/someotherfile.db
Eu gostaria que isso levasse 5 nanossegundos, porque é apenas uma renomeação. Mas leva duas horas. Isso parece ser porque na verdade ele está copiando o arquivo através do espaço de memória da máquina local - ele está movendo 50 GB pela LAN (ou talvez até 100 GB se ele estiver copiando e copiando).
Normalmente, em um sistema local, um "mv" é instantâneo, independentemente do tamanho do arquivo, porque está atualizando apenas a tabela inode / file.
Existe uma boa maneira de fazer o mesmo quando o arquivo está em um compartilhamento remoto do Samba?
Normally on a local system a "mv" is instantaneous regardless of file size because it's only updating the inode/file table.
Exatamente. Eu imagino que você vai querer chamar renomear / mv do host que contém o sistema de arquivos.