Pergunta

Eu estava procurando uma maneira de criar links de disco rígido em Windows e eu encontrei esta página: http://technet.microsoft.com/en-us/library/cc788097.aspx

Para testá-lo, eu criei um arquivo (1.txt) na raiz da minha unidade C: com 100 linhas do seguinte conteúdo:

C: \ 1.txt (2.598 bytes):

test test test test test

Então eu abrir o prompt de comando e digitou:

fsutil hardlink create C:\2.txt C:\1.txt

Sucesso, 2.txt foi criado, mas quando eu vou vê-lo do tamanho que tem exatamente 2.598 bytes e também notei alguns comportamentos estranhos (tanto quanto o meu entendimento de links rígidos vai):

  1. Se eu 2.txt delete (o arquivo vinculado duro) 1.txt não é excluído, e vice-versa.
  2. Se eu 2.txt aberto após I 1.txt delete (o arquivo original) o conteúdo ainda é o mesmo.

Como o fsutil hardlink criar difere comando a partir do comando de cópia? E como eu posso criar um verdadeiro hard link no Windows?

Estou usando o Windows XP SP 3, e meu sistema de arquivos é NTFS.

Foi útil?

Solução

Isso é exatamente o comportamento que deveria acontecer. Tem certeza de que compreender ligações quão duro trabalho? Hard links são realmente apenas várias entradas no sistema de arquivos que se referem ao mesmo arquivo exato. Se você criar um hard link para um arquivo e modificar uma das instâncias do arquivo, o outro arquivo vai aparecer com as suas alterações porque ambos referem-se aos mesmos blocos de dados no disco.

Quando você excluir um dos links de disco rígido, você está realmente apenas supressão de uma das entradas do sistema de arquivos referentes àquele arquivo. O arquivo não são excluídos até que elimine todas de seus links de disco rígido (incluindo a original). Depois de 1.txt de exclusão, 2.txt ainda existe e refere-se ao mesmo arquivo que existia originalmente, só que agora existe apenas uma única entrada do sistema de arquivos referindo-se a esse arquivo (ou seja, 2.txt). 2.txt é arquivo.

Outras dicas

Como o fsutil hardlink criar difere de comando do comando de cópia? E como eu posso criar um verdadeiro hard link no Windows?

Depois de criar o arquivo hardlinked, tente editar qualquer um. Você vai descobrir que as alterações são refletidas em ambos os arquivos.

Tente criar um hard-link de um arquivo muito grande (digamos, um vídeo ou disco-imagem). Observe que o espaço disponível no disco não mudou (ou não alterado por mais de alguns bytes, se metadados adicionais tinham de ser gravados em disco para refletir a nova entrada dir).

Isso é um verdadeiro hard link. Em UNIX (Eu não estou familiarizado com a variante Windows) um arquivo é apenas um conjunto de dados no disco (simplista). É a própria entrada de diretório que dá esse arquivo um nome.

Quando você tem duas entradas de diretório apontando para o mesmo arquivo subjacente, excluindo um deles faz não excluir o arquivo a menos que seja a entrada último diretório anexado a ele (e o arquivo não está ainda em aberto por um processo, mas isso é uma questão diferente).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top