Я пытался создать символьную ссылку Книжного Каталога в Дом
#in the Document Directory to the Home Diretory.
ln -s Books/ ~/Books
но это создает файл, а не каталог
Какова проблема с моим использованием ln?
Это похоже на 3-ю форму согласно документации:
ln [ОПЦИЯ]... ЦЕЛЬ... КАТАЛОГ (3-я форма)... В 3-х и 4-х формах создайте ссылки на каждую ЦЕЛЬ в КАТАЛОГЕ.
Таким образом, это читает, поскольку "создают ссылку на каталог 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 ]$
Кажется на создание неработающей ссылки. Books/
находится в ~/Documents
, таким образом, необходимо указать что, любой с относительным путем:
ln -s Documents/Books ~/Books
или полный путь:
ln -s ~/Documents/Books ~/Books