Por que o espaço livre na partição de origem não muda durante o "mv"?

13

Estou correndo mvpara mover um diretório (que contém muitos arquivos) de uma partição para outra. Enquanto mvmove arquivos individuais no diretório, um por um, percebo que o tamanho do espaço livre da partição de origem não muda, enquanto o tamanho do espaço livre da partição de destino está diminuindo.

Por que está funcionando dessa maneira, em vez da soma dos tamanhos de espaço livre das partições de origem e destino permanecerem iguais?

Tim
fonte

Respostas:

16

Como o POSIX define, o mv duplicará o arquivo de origem no caminho de destino e, se nada der errado, o arquivo de origem será removido:

  1. A hierarquia de arquivos enraizada no arquivo de origem deve ser duplicada como uma hierarquia de arquivos enraizada no caminho de destino

  2. A hierarquia de arquivos enraizada no arquivo de origem deve ser removida. Se isso falhar por algum motivo, o mv escreverá uma mensagem de diagnóstico para o erro padrão, não fará mais nada com o arquivo de origem atual e continuará com os demais arquivos de origem.

Se você mover o mesmo sistema de arquivos, somente moverá a entrada de um local no sistema de arquivos para outro.

Garantiu que você não perderá o arquivo de origem se ocorrerem erros durante o processo de movimentação.

cuonglm
fonte
16

Ele está sendo conservador e não excluindo arquivos até que a cópia seja bem-sucedida. Isso facilita a recuperação se algo der errado.

hildred
fonte
mas a dir tem muitos arquivos
Tim
7
@ Tim: Ele não começa a remover os arquivos de origem até que todos os arquivos tenham sido duplicados no volume de destino. Se você precisar que os arquivos sejam movidos um de cada vez, para que nunca haja mais espaço "extra" usado que o do arquivo maior, você precisará criar um loop para fazer isso.
21815 Warren Young
4
Você já fez alguma alteração no MS-Windows e, no meio da mudança, algo dá errado. Tanto a origem quanto o destino estão uma bagunça, e você pode corrigi-lo. Se você não é um nerd da ceia, provavelmente exclui os dois e aprende a não fazê-lo novamente.
Ctrl-alt-delor