Eu preciso de um link simbólico que resolva em relação ao diretório em que ele é colocado. Que comando é usado para criar uma coisa dessas?
linux
command-line
symbolic-link
Jeremiah Rose
fonte
fonte
ln -s ../some/other/file /some/dir/linkname
ln -s ./file linkname
já que.
se refere ao diretório atual.ln -s somedir/original-dir link-name
não funciona. Ele cria um diretório com o nomelink-name
que contém um link inválido. O comando que funciona éln -sr somedir/original-dir link-name
As versões recentes do GNU coreutils 'ln (> = 8.16) suportam a opção
--relative
(or-r
), o que significa que você pode chamarln -s
com 2 caminhos absolutos ou relativos (em relação ao seu diretório de trabalho) e ele descobrirá o caminho relativo correto que deve ser gravado no link simbólico.fonte
-r
opção é útil quando você está compilando em cruz e precisa de caminhos absolutos no host de construção, mas de caminhos relativos no destino.ln -r -s targetfile myalias
pode ajudá-lo a corrigi-loO que você precisa entender é basicamente que um link simbólico é mais um arquivo de texto do que uma entrada de diretório que contém um arquivo. Então, se você
então isso é bem parecido com
O sistema não se importa se
/file/../poo
existe, é apenas um pedaço de texto que é colocado no link simbólico. Quando algo tenta abrir o link simbólico, é quando o sistema tenta resolvê-lo.Se você estiver usando um shell com preenchimento de nome de arquivo, esse recurso poderá confundir coisas, permitindo que você complete um nome de arquivo relativo ao seu diretório de trabalho atual, mesmo se você acabar usando isso como o destino de um link simbólico em outro diretório.
fonte
<
mudar a forma como o sistema de memória alocada. É claro que não há arquivo nomeado<
nesse diretório, é apenas uma maneira barata de criar um arquivo muito pequeno, que possui algumas propriedades atraentes em relação a um arquivo de texto comum nessa plataforma específica.Links relativos eram complicados para mim no OS X, ou seja,
ambos não funcionaram (algo foi criado, mas não era um diretório). Criei o link desejado usando caminhos absolutos .
fonte
ln -s Dropbox/git/codyhess/bin ~/bin
Eu só queria explicar melhor como criar um link simbólico usando caminhos relativos (com um exemplo detalhado).
Como Ignacio Vazquez-Abrams mencionou nos comentários, você deve especificar o local do arquivo / pasta em relação ao local em que o link simbólico será criado, não em relação ao seu diretório atual.
EXEMPLO
Você está dentro
/usr/share/nginx/html/_src/learn
Você criará um link simbólicocoding
no/usr/share/nginx/html
Crie um vínculo simbólico relativo (teoria):
Crie um link simbólico relativo real:
Mais informações (mesmo exemplo)
fonte