mv comando excluiu arquivos de origem mesmo que o arquivo não tenha sido totalmente movido

0

Eu estava usando o comando mv para mover vários arquivos do diretório A para o diretório B. O sistema de arquivos no qual o diretório B está localizado estava cheio, então recebi mensagens correspondentes. No entanto, os arquivos foram movidos em branco (tamanho 0) e os arquivos de origem foram excluídos. Então, eu perdi praticamente todos os arquivos que pretendia mover. É assim que deve se comportar?

    
por Eli O 17.02.2017 / 23:00

1 resposta

1

Você estava se movendo em um ponto de montagem? Normalmente, a maneira como o mv funciona é simplesmente renomear um arquivo. O nome completo de um arquivo inclui seu caminho absoluto, e é por isso que renomear e mover é o mesmo comando.

No entanto, se o novo local estiver sob um ponto de montagem diferente do anterior, a renomeação não poderá funcionar, porque o arquivo está fisicamente localizado em uma partição diferente.

O que o mv faz neste caso é silenciosamente copia e exclui o arquivo. Essa operação, no entanto, não é tão confiável, como descobri por experiência pessoal. Nem sempre verifica se a cópia é bem sucedida antes da exclusão.

Sinceramente, é completamente desnecessário para o mv tentar se comportar dessa maneira, quando o que você deve fazer é simplesmente usar o comando cp seguido pelo comando rm sempre que for transferir informações sobre pontos de montagem.

Ao causar o que deveria ser um comando simples para executar a mágica nos bastidores sem o conhecimento do usuário, os autores do comando criaram um sistema menos transparente, além de mais um erro propenso.

    
por 17.02.2017 / 23:27

Tags