link simbólico para ~ / SomeDir relativo à casa do usuário [duplicado]

0

Eu tenho um projeto que compartilho com outras pessoas. Ele é armazenado e distribuído no git.

Ele deve conter links para diretórios fora do arquivo git, mas dentro da home do usuário, onde algumas bibliotecas comuns são, assim:

Arduino -> /home/gilhad/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/gilhad/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/gilhad/GitHub/Bare-Arduino-Project

Funciona para mim (gilhad), mas não funciona para o meu amigo. Eu gostaria de fazer links assim:

Arduino -> ~/GitHub/arduino-1.8.1
Arduino-Makefile -> ~/GitHub/Arduino-Makefile
Bare-Arduino-Project -> ~/GitHub/Bare-Arduino-Project

que efetivamente resolveria para o anterior na minha conta e para seguir na conta de amigos

Arduino -> /home/friend/GitHub/arduino-1.8.1
Arduino-Makefile -> /home/friend/GitHub/Arduino-Makefile
Bare-Arduino-Project -> /home/friend/GitHub/Bare-Arduino-Project

(independentemente de onde esse diretório git / real é realmente colocado, então ../../../GitHub/.... como destino não funcionaria, pois o projeto pode ser colocado em ~/tmp , bem como em ~/my/special/folder/for/projects , enquanto GitHub é sempre colocado no diretório inicial de usuários ( /home/gilhad ou /home/friend ou para o qual ~ aponta para)

    
por gilhad 16.03.2017 / 09:28

1 resposta

1

Você não pode fazer isso com links simbólicos. Além do fato de que referir-se ao diretório home com um til é um recurso shell, e não suportado por todos os programas (embora muitos o façam), todo o conceito de um "diretório home" é um conceito de espaço do usuário, e doesn ' t existe no kernel. Portanto, a camada do sistema de arquivos do kernel, que resolve os links simbólicos, não possui o conhecimento necessário.

No Linux, você poderia manipular algo com namespaces de montagem e montar montagens, se você realmente quisesse. (veja aqui , aqui e aqui )

Em qualquer caso, a idéia de criar links em um repositório git que aponta para fora do repositório em si parece um pouco estranho para mim. O uso dos links será possível somente para aqueles que estão em conformidade com o sistema definido pelos links, e um único usuário que deseja / precisa de um layout diferente, está um pouco sem sorte. Você pode querer considerar o uso, digamos, de variáveis de ambiente para armazenar os locais dos arquivos dos usuários. Diga com $ARDUINO apontando para /home/foo/GitHub/arduino-1.8.1 ou /home/foo/GitHub/arduino-someotherversion conforme o usuário exigir.

    
por 16.03.2017 / 10:23