Windows7 hardlink em duas unidades diferentes

13

Estou tentando criar um hardlink na minha unidade C que aponte para um arquivo na minha unidade D. Abro um terminal com privilégios de administrador e tente o seguinte:

C:\Users\sandro>mklink /H _vimrc D:\sandro-desktop\.vimrc

O erro que recebo é: O sistema não pode mover o arquivo para uma unidade de disco diferente.

Quando tento um softlink, recebo o problema de que, por algum motivo, as alterações no conteúdo do link não são refletidas no arquivo de destino.

Obrigado!

Sandro
fonte
Que tal _vimrcno destino em vez de .vimrc?
9117 ulidtko
Não é uma resposta, mas você encontrará boas informações aqui, schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html .
therube

Respostas:

21

Um link físico é um recurso do sistema de arquivos que não pode cruzar um limite do sistema de arquivos. Não é possível vincular os arquivos em C: a D: porque eles são sistemas de arquivos separados. Eles podem conter o mesmo tipo de sistema de arquivos (por exemplo, NTFS), mas são sistemas de arquivos separados.

Mike Fitzpatrick
fonte
Eu acredito que s / diferente / separado / seria mais apropriado.
user1686
@ grrawity: Sim, concordou. Então editado.
Mike Fitzpatrick
Você tem idéias de como eu posso contornar isso?
Sandro
Você pode migrar seu perfil de usuário do Windows 7 (ou apenas a pasta Meus Documentos) para a unidade D, para que os hardlinks funcionem. Se você fizer isso, certifique-se de usar os métodos adequados no Windows 7 (geralmente através de Propriedades tabs) - não mover manualmente pastas de C: para D:
Mike Fitzpatrick
O único caso em que o hardlink entre C: e D: funcionará é quando eles estiverem no mesmo sistema de arquivos, por exemplo, subst D: C:\utils(é claro, criado usando o Registro para tornar isso substpersistente).
miroxlav
3

Se o seu Windows 7, você pode usar links simbólicos - steammover faz exatamente isso

Journeyman Geek
fonte
Como isso é diferente do que estou fazendo agora? Eu acho que eu posso dar-lhe uma tentativa :)
Sandro
Os links simbólicos funcionam entre diretórios - algumas das opções mais antigas relacionadas a junções não. Além disso, como há um front end limpo, que informa o comando, é mais fácil descobrir o que é feito. Eu estou na sua maioria usando o XP, então eu não tenho certeza se o seu 'melhor', mas pelo que eu li, ele deve fazer o trabalho que você precisa fazer com o mínimo de barulho
Journeyman Geek
2
@Sandro: Detalhes técnicos: dois hardlinks apontam para o mesmo inode (no Unix; muito semelhante no NTFS do Windows), que funciona apenas em um único sistema de arquivos. Dois hardlinks são completamente idênticos; não há "original". Um link simbólico, por outro lado, aponta para um caminho , que pode ser qualquer texto de fato.
user1686
Se é assim que os links simbólicos funcionam, como é que, quando faço uma alteração em um arquivo, o outro não mostra as alterações?
Sandro
-3

Tente o seguinte:

mklink /H "C:\Users\sandro_vimrc" "D:\sandro-desktop\.vimrc"

Acho que isso tem algo a ver com o nome do arquivo do destino. Tente usar aspas no link de destino.

Eu acho que seu link também precisa ser um caminho completo.


fonte
Eu tentei aqueles e ainda nada. Obrigado pela ideia!
Sandro
Provavelmente é o nome do ponto do alvo. Funciona para outros arquivos?