答案1
根据文档,这看起来像第三种形式:
ln [OPTION]...TARGET...DIRECTORY(第 3 种形式)...在第 3 和第 4 种形式中,创建指向 DIRECTORY 中每个 TARGET 的链接。
因此,它读作“创建指向目录Books
(位于当前工作目录中)的链接,并将该链接放在指定目录中~/Books
”。当然,如果Books/
当前工作目录中不存在该目录,您将有一个指向自身的符号链接,这将导致符号链接级别过多的错误
[ adminx:Fri Feb 22 01:57:21 UTC 2019 ]$ ln -s asdfasdf foobarbaz/
[ adminx:Fri Feb 22 01:57:33 UTC 2019 ]$ ls foobarbaz/
asdfasdf file.txt thing
[ adminx:Fri Feb 22 01:57:37 UTC 2019 ]$ ls -l foobarbaz/
total 0
lrwxrwxrwx 1 adminx adminx 8 Feb 22 01:57 asdfasdf -> asdfasdf
-rw-rw-r-- 1 adminx adminx 0 Feb 22 01:56 file.txt
lrwxrwxrwx 1 adminx adminx 5 Feb 22 01:56 thing -> thing
[ adminx:Fri Feb 22 02:02:29 UTC 2019 ]$ cd foobarbaz/thing
bash: cd: foobarbaz/thing: Too many levels of symbolic links
现在,我建议使用带有-T
标志的第一个形式:
adminx:Fri Feb 22 02:05:01 UTC 2019 ]$ ln -s -T ~/Documents dock_link
[ adminx:Fri Feb 22 02:05:08 UTC 2019 ]$ ls -l dock_link
lrwxrwxrwx 1 adminx adminx 22 Feb 22 02:05 dock_link -> /home/adminx/Documents
[ adminx:Fri Feb 22 02:05:16 UTC 2019 ]$
答案2
似乎您创建了一个断开的链接。Books/
位于~/Documents
,因此您需要使用相对路径来指定它:
ln -s Documents/Books ~/Books
或绝对路径:
ln -s ~/Documents/Books ~/Books