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 nameLINK_NAME
. In the 2nd form, create a link toTARGET
in the current directory. In the 3rd and 4th forms, create links to eachTARGET
inDIRECTORY
. 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, eachTARGET
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.