Como posso criar um symlink que aponte para outro symlink?

4

Existe alguma maneira de criar um link simbólico que aponte para outro link simbólico?

Eu tenho um link A (apontando para o endereço1 = /home/data/username/var ) no diretório / home / data e eu preciso criar link B em /home directory , que é pontos para linkar A

Se eu fizer ln -nfs /home/B /home/data/A , não funciona.

    
por 3498DB 31.10.2011 / 20:25

2 respostas

5

A ordem do argumento é

ln -s link-target new-link

Então você quer

ln -s /home/data/A /home/B
       ^--existing  ^----new link
          file/link

Atualização: eu tinha esquecido o -s flag no meu exemplo, então ele estava tentando criar hard links, que passariam por links simbólicos para tentar apontar para o que o link estivesse apontando. Com links simbólicos, você pode aninhá-los o quanto quiser:

marc@panic:~/b$ touch z
marc@panic:~/b$ ls -l
total 0
-rw-r--r-- 1 marc marc 0 2011-10-31 13:36 z
marc@panic:~/b$ ln -s z y
marc@panic:~/b$ ln -s y x
marc@panic:~/b$ ln -s x w
marc@panic:~/b$ ls -l
total 0
lrwxrwxrwx 1 marc marc 1 2011-10-31 13:36 w -> x
lrwxrwxrwx 1 marc marc 1 2011-10-31 13:36 x -> y
lrwxrwxrwx 1 marc marc 1 2011-10-31 13:36 y -> z
-rw-r--r-- 1 marc marc 0 2011-10-31 13:36 z
    
por 31.10.2011 / 20:28
1

O OP quer um symlink, ln faz um hardlink. Mas além disso, você pode fazer um symlink que aponte para qualquer lugar, o alvo nem precisa existir. man ln é seu amigo :) Eu geralmente faço ln -s tgt src , então src aponta para tgt .

    
por 31.10.2011 / 20:32