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?

Wes
fonte
1
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.
Wes
1
isso não é apenas um tolo de superuser.com/questions/895229/… ?
Tetsujin
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.

Leitura Adicional

DavidPostill
fonte
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.

Glenn Slayden
fonte