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 nomeLINK_NAME
. Dentro Na segunda forma, crie um link paraTARGET
no diretório atual. No 3º e 4º formulários, crie links para cadaTARGET
emDIRECTORY
. 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, cadaTARGET
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.