Um link simbólico NTFS pode ter um destino de guia de volume?
2
Qualquer maneira de especificar, por exemplo, \\? \ Volume {f993747a-5d7a-4de1-a97a-c20c1af1ba02} \ path \ para \ target.txt como o destino de um symlink? Ou o caminho absoluto sempre exige uma letra de unidade?
Soa como algo que você pode descobrir apenas tentando ... O que você parou de fazer isso?
LPChip
Eu fiz. Mas eu não li em nenhum lugar que isso não era possível, então eu estava me perguntando se havia algum prefixo chique que eu deveria usar ou algo assim. Ou alguém pode me dizer se é ou não possível e não ser um espertinho.
Não, porque essa questão só diz respeito a atalhos não links simbólicos.
Wes
Respostas:
1
Um link simbólico NTFS pode ter um destino de guia de volume?
Você pode usar o mklink para criar um link simbólico do formulário\\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target.txt
c:
md \test
cd \test
mklink testlink \\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt
Agora o teste de diretório contém um link simbólico (que no meu caso aponta para um arquivo f:\test\test.txtem uma unidade externa).
C:\test>dir
Volume in drive C has no label.
Volume Serial Number is C8D0-DF1E
Directory of C:\test
29/03/2015 23:24 <DIR> .
29/03/2015 23:24 <DIR> ..
29/03/2015 23:17 <SYMLINK> testlink [\\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt]
1 File(s) 0 bytes
2 Dir(s) 248,410,976,256 bytes free
...
C:\test>type testlink
this file is test.txt
C:\test>
...
C:\test>type f:\test\test.txt
this file is test.txt
C:\test>
Nota
Isso só funciona se você tentar desreferenciar o link no prompt de comando, mas não se tentar acessá-lo pela interface do explorador.
O link é criado para ter certeza, mas se eu tentar acessá-lo no Windows Explorer nada acontece. Então eu acho que a resposta é sim apenas se você tentar acessá-lo a partir da linha de comando, mas não se você tentar fazer isso a partir da interface do usuário.
Wes
A menos que você encontre o contrário do meu comentário anterior, modificarei sua resposta para declarar apenas na linha de comando e vote na resposta.
Wes
0
Tenho notado apenas um problema depois de anos de uso 10,000'sde hard-links extensivamente. Quão significativo é depender da sua situação específica. Observe que meu aplicativo está usando hard-links ("junções de diretório", criadas linkd.exesomente com ), portanto, o seguinte pode ou não se aplicar aos outros tipos de symlink.
O único problema que tive é que o chkdsk se comporta mal em casos raros. Se for chkdsk.exeexecutado automaticamente na inicialização em resposta a uma unidade que está sendo encerrada anteriormente com um sinalizador de flag pendente, então, parece remover todas as junções de cross-drive em alguns casos. Além de remover as junções, o chkdsk.exebug não corrompe nada.
Existem várias soluções e estratégias para resolver o chkdsk.exeproblema, que estão além do escopo da questão original, basta dizer que sim, funciona ... com a única ressalva que eu encontrei de ter sido mencionada.
Respostas:
Um link simbólico NTFS pode ter um destino de guia de volume?
Você pode usar o mklink para criar um link simbólico do formulário
\\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target.txt
Agora o teste de diretório contém um link simbólico (que no meu caso aponta para um arquivo
f:\test\test.txt
em uma unidade externa)....
...
Nota
Leitura Adicional
fonte
Tenho notado apenas um problema depois de anos de uso
10,000's
de hard-links extensivamente. Quão significativo é depender da sua situação específica. Observe que meu aplicativo está usando hard-links ("junções de diretório", criadaslinkd.exe
somente com ), portanto, o seguinte pode ou não se aplicar aos outros tipos de symlink.O único problema que tive é que o chkdsk se comporta mal em casos raros. Se for
chkdsk.exe
executado automaticamente na inicialização em resposta a uma unidade que está sendo encerrada anteriormente com um sinalizador de flag pendente, então, parece remover todas as junções de cross-drive em alguns casos. Além de remover as junções, ochkdsk.exe
bug não corrompe nada.Existem várias soluções e estratégias para resolver o
chkdsk.exe
problema, que estão além do escopo da questão original, basta dizer que sim, funciona ... com a única ressalva que eu encontrei de ter sido mencionada.fonte