A razão pela qual o mv provavelmente funcionaria, é porque o arquivo realmente seria o mesmo arquivo . Portanto, o processo de upload seria gravado em um determinado inode, e o comando mv simplesmente atualiza a origem e os destinos para que o inode esteja em um local diferente. Mas qualquer programa com um identificador aberto para o arquivo poderá continuar trabalhando com esse inode, para que você possa mover o link para onde você quiser.
O que você pode fazer é usar a opção rsync --link-dest
. Obter os caminhos certos é complicado , pois --link-dest
precisa do caminho relativo para a origem na perspectiva do destino. Mas isso deve fazer com que o rsync crie hardlinks para o arquivo. Isso é tanto a origem quanto o destino devem linkar exatamente ao mesmo inode.