Interpretar links simbólicos do Windows como links simbólicos do Linux

2

Eu tenho vários arquivos em um local montado na rede (Windows). Muitos desses arquivos são links simbólicos do Windows.

Existe algo que eu possa fazer para dizer ao Ubuntu para interceptar esses links simbólicos do Windows apropriadamente? O ponteiro nesses links simbólicos é mostrado abaixo.

l--------- 1 acc acc 0 Dec 18 12:40 file.txt -> /??/D:/path/to/file.txt

Mesmo que eu pudesse fazer algo parecido com o abaixo de forma programática, ele alcançaria meu objetivo:

if path.contains("/??/D:/") {
    path = path.replace("/??/D:/", "/mnt/share/")
}

Eu não quero alterar o conteúdo dos links simbólicos, pois eles ainda são usados por outros serviços na minha máquina Windows.

editar a razão pela qual eu quero fazer isso é porque eu tenho um aplicativo no Ubuntu que estou apontando para os links simbólicos no compartilhamento de rede (Windows), mas eles não estão encontrando o alvo arquivo com sucesso devido a links sym sendo de estrutura diferente no Linux em relação ao Windows. O arquivo de destino está dentro do mesmo compartilhamento e as permissões não são o problema.

    
por adampski 30.12.2015 / 16:23

1 resposta

4

Assumindo que ?? no destino do symlink é literalmente ?? , você poderia facilmente fornecer aos links simbólicos o que eles estão pedindo. Ou seja, basta criar um diretório chamado /??/D: com sudo mkdir -p '/??/D:' (não esqueça as aspas simples para evitar que ? e : sejam interpretadas como caracteres especiais). Em seguida, execute sudo mount -o bind /mnt/share '/??/D:' para tornar o conteúdo de /mnt/share acessível também em /??/D: .

Se isso acontecer, você poderá torná-lo permanente adicionando esta linha a /etc/fstab :

/mnt/share /??/D: auto bind 0 0
    
por fkraiem 30.12.2015 / 17:17