How to create a symlink to root

Solution 1:

You're missing the name of the link, it should be:

cd ~
ln -s / root

Which then would create a symlink called root in your home directory. So the correct usage is:

ln -s <target> <link-name>

The error message you see is, that ./ always exists and a link can not be created with this name, best is to use the ln command2 with both parameters to prevent wrong linkage.

From man ln:

SYNOPSIS

(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...  

DESCRIPTION

In the 1st form, create a link to TARGET with the name LINK_NAME. In the 2nd form, create a link to TARGET in the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links by default, symbolic links with --symbolic. By default, each destination (name of new link) should not already exist4. When creating hard links, each TARGET must exist. Symbolic links can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent directory.

Mandatory arguments to long options are mandatory for short options too.

OPTIONS

The final parameter, <link-name>, defaults to the last part of the target. So when the target is /path/dir the link name will default to dir if not specified.1 And if you for example create ~/etc with mkdir ~/etc and then run ln -s /etc in ~ it can not create the link because the name/directory already exists.3

And you can see the link created in your home directory (here as example, of course you're free to name it whatever you like):

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

1Thanks to @thomasrutter for pointing that out.
2See also man link and man symlink
3Thanks to @steeldriver for providing an example in comments.
4Emphasised part to make text point out since it is relevant to the question.