Symlink para a pasta atual como caminho absoluto sem digitar o caminho inteiro

10

Links simbólicos são atalhos salvos para caminhos relativos:

~/foo➤ ln -s . ~/bar/foo
~/foo➤ ls -l ~/bar
total 8
lrwxr-xr-x    1 me  me     1B 15 May 14:38 foo -> .

O arquivo ~/bar/foo é um link simbólico para o diretório atual bar s, ou seja, ele mesmo

E se eu quiser criar um link simbólico em outro diretório para o diretório em que estou no momento? Portanto, no exemplo acima, estou em ~/foo e quero criar ~/bar/foo como um link simbólico para ~/foo . É claro que meu diretório atual pode ter mais de 5 caracteres e pode não ser tão fácil de digitar.

    
por Gareth 15.05.2012 / 15:44

2 respostas

13

Eu diria tipo

ln -s $PWD ~/bar/

ou

ln -s 'pwd' ~/bar/

Você também pode usar

ln -s $PWD ~/bar/

mas eu acho que você sabia disso e não é isso que você está procurando. Então, por favor, você poderia atualizar sua pergunta para explicar qual é o seu objetivo?

Se o caminho contiver espaços, seria aconselhável usar:

ln -s "$PWD" ~/bar/
    
por 15.05.2012 / 16:08
3

Absolutamente:

ln -s "$(readlink -f .)" ~/bar

(pode ser bom para generalidade em scripts) ou apenas

ln -s ~/foo ~/bar

Relativamente:

ln -s ../foo ~/bar

A conclusão de tabulação ajudará você a digitar.

Do comentário de Grawity e do link :

* Noteworthy changes in release 8.16 (2012-03-26) [stable]

...

ln now accepts the --relative option, to generate a relative symbolic link to a target, irrespective of how the target is specified.

Então, com esta versão:

ln -s --relative . ~/bar

deve funcionar (na prática é idêntico ao seu primeiro exemplo, com a adição da opção --relative ).

    
por 15.05.2012 / 16:27