You're missing the name of the link, it should be:
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.
(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...
In the 1st form, create a link to
TARGET with the name
the 2nd form, create a link to
TARGET in the current directory. In the
3rd and 4th forms, create links to each
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
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
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 -> /
1 Thanks to @thomasrutter for pointing that out.
2 See also
man link and
3 Thanks to @steeldriver for providing an example in comments.
4 Emphasised part to make text point out since it is relevant to the question.