O que acontece quando os dados são gravados em um disco de estado sólido é digno de vários artigos (bom resumo aqui ), porque é muito complicado e depende da tecnologia subjacente. A história resumida é que os SSDs em geral não podem gravar zero bits na memória. Em vez disso, eles precisam zerar (apagar) uma seção inteira da memória e, em seguida, podem armazenar dados depois disso, apenas escrevendo os que estão nela. Atualmente, eles escrevem blocos de 512 bytes, mas apagam uma página de 8 blocos, que é 4096. Isso e o fato de que cada ciclo de gravação / exclusão causa algum desgaste físico da memória e a memória acaba eventualmente se desgastando, torna os SSDs muito diferentes do que girar HDDs magnéticos.
Deixando isso de lado, as unidades SATA (e unidades AFAIK SAS) não implementam um comando nativo para copiar dados de um setor para outro. (Ou pelo menos nada nas especificações SATA ou SAS exige, portanto, o sistema operacional não pode contar com esse comando disponível.) Portanto, uma cópia de arquivo em uma partição envolverá a leitura dos dados de um setor de unidade na memória do host e a gravação de volta à unidade em um setor diferente.
Isso ocorre porque, no que diz respeito ao sistema operacional, uma unidade é um conjunto de setores lógicos numerados e tudo o que você pode fazer é ler de setores e gravar em setores. O sistema operacional não pode dizer à unidade para remapear setores.
Além disso, o sistema de arquivos (HFS +, NTFS, ext3 etc.) é um conjunto de estruturas de dados que impõem ordem a um conjunto de blocos lógicos. Essas estruturas de dados implementam "arquivos", "nomes de arquivos", "diretórios", "permissões" etc. Então, sim, quando você move um arquivo de um diretório para outro, ele não é copiado; somente os dados do sistema de arquivos que indicam em qual diretório o arquivo está são atualizados.
O conceito de uma partição é que é um conjunto de setores lógicos na unidade reivindicados por um único sistema de arquivos. O corolário disso é que um sistema de arquivos pode não acessar setores fora de sua partição. Em grande parte, esse é um recurso de segurança, mas também decorre do fato de que as estruturas de dados do sistema de arquivos são todas construídas para contabilizar todos os setores da unidade sob a propriedade do sistema de arquivos, e não é trivial adicionar ou remover setores a essas estruturas. É por isso que você precisa executar rotinas especiais para ajustar o tamanho de uma partição e também por que os sistemas de arquivos insistem em executar em um conjunto contíguo de setores.
Portanto, é impraticável e perigoso implementar uma cópia de arquivo apenas transferindo setores de um sistema de arquivos para outro. Em uma unidade magnética giratória, também seria um pesadelo de desempenho, porque, embora a unidade faça exceções para setores defeituosos, em geral ela organiza que os setores sejam localizados fisicamente de maneira a otimizar a velocidade de leitura e gravação de números numerados consecutivamente setores.
Além disso, 2 sistemas de arquivos podem não armazenar dados do mesmo modo no disco, o que significa que a troca de setores não funcionaria, mesmo que fosse prático. Mesmo que sejam exatamente os mesmos tipos de sistema de arquivos, digamos NTFS, um pode estar usando criptografia ou compactação e o outro não, ou ambos podem criptografar os dados, mas com chaves diferentes. Não é necessário que os dados no arquivo sejam exatamente o que está armazenado no disco, tudo o que precisa ser armazenado é uma transformação reversível dos dados, para que o sistema de arquivos possa obter os dados do arquivo fazendo algo com os dados no disco. Portanto, a menos que ambos os sistemas de arquivos estejam usando exatamente a mesma transformação, a simples troca de setores não alcançaria o objetivo de transferir os dados do arquivo.
Por todos esses motivos, é trabalho demais para pouco ganho para os gravadores de SO e gravadores de sistema de arquivos implementar um recurso que otimiza as movimentações entre partições para SSDs. Portanto, qualquer movimentação entre partições será uma leitura e uma gravação.
Dentro do SSD, é uma história um pouco diferente. Embora o sistema operacional não tenha informado à unidade que está copiando dados de um lugar para outro, as gravações em SSDs são tão caras (e complicadas) que os controladores de SSD fazem muito trabalho para minimizar as gravações. Alguns SSDs tentam detectar quando um setor que está sendo gravado no armazenamento corresponde a um setor já armazenado e marcam essa parte física da memória como agora mapeando para 2 setores lógicos diferentes, em vez de copiá-lo, fazendo no nível da unidade interna o que o OS não podia.
Mas não conte com isso.
mv
teriam que cooperar, misturando muito as camadas de abstração.