ln -s 无法创建符号目录

ln -s 无法创建符号目录

我尝试创建 Books Directory 到 Home 的符号链接

#in the Document Directory to the Home Diretory.
ln -s Books/ ~/Books

在此处输入图片描述

但它创建的是文件而不是目录

我使用 ln 有什么问题?

答案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

相关内容