Como criar um symlink para root

13

Eu quero criar um link simbólico para a pasta raiz ( / ) no meu diretório pessoal. No entanto, se eu tentar isso, eu recebo

~$ ln -s /
ln: failed to create symbolic link './': File exists

Eu posso fazer isso usando o Nautilus Ctrl + D , é claro, então eu sei que é possível.

Como fazer isso usando o terminal?

    
por Ankur S 14.12.2017 / 00:27

1 resposta

16

Você está sentindo falta do nome do link, deve ser:

cd ~
ln -s / root

Qual seria então criar um link simbólico chamado raiz em seu diretório inicial. Então, o uso correto é:

ln -s <target> <link-name>

A mensagem de erro que você vê é que ./ sempre existe e um link não pode ser criado com este nome, o melhor é usar o Comando ln 2 com os dois parâmetros para impedir a ligação errada.

De man ln :

  
    

SINOPSE

(1st form) ln [OPTION]... [-T] TARGET LINK_NAME  
(2nd form) ln [OPTION]... TARGET  
(3rd form) ln [OPTION]... TARGET... DIRECTORY  
(4th form) ln [OPTION]... -t DIRECTORY TARGET...  
         

DESCRIÇÃO

         
      

No primeiro formulário, crie um link para TARGET com o nome LINK_NAME . Dentro          Na segunda forma, crie um link para TARGET no diretório atual. No          3º e 4º formulários, crie links para cada TARGET em DIRECTORY . Crio          links físicos por padrão, links simbólicos com --symbolic . Por padrão,          cada destino (nome do novo link) não deveria existir 4 . Quando          Para criar links físicos, cada TARGET deve existir. Links simbólicos podem conter          texto arbitrário; se mais tarde resolvido, um link relativo é interpretado em          relação ao seu diretório pai.

             

Argumentos obrigatórios para opções longas são obrigatórios para opções curtas          também.

    
         

OPÇÕES

  

O parâmetro final, <link-name> , é o padrão da última parte do destino. Portanto, quando o destino for /path/dir , o nome do link será padronizado como dir , se não especificado. 1 E, por exemplo, crie ~/etc com mkdir ~/etc e, em seguida, execute ln -s /etc in ~ não pode criar o link porque o nome / diretório já existe. 3

E você pode ver o link criado em seu diretório pessoal (aqui, por exemplo, é claro que você está livre para dar o nome que quiser):

$ ls -l ~/root
lrwxrwxrwx 1 videonauth videonauth 1 Dez 14 00:28 root -> /

1 Obrigado ao @thomasrutter por apontar isso. 2 Veja também man link e man symlink
3 Agradecimentos a @ steeldriver para fornecer um exemplo nos comentários.
4 Parte enfatizada para destacar o texto, pois é relevante para a pergunta.

    
por Videonauth 14.12.2017 / 00:30