Какие причины ln: //: есть ли каталог?

При связывании каталога с root, я получаю эту ошибку:

$ ln -s ~/inbox/ / $ ln: //: Is a directory 

Bash автозаполняет путь к каталогу, добавляя /. Я попытался убежать без успеха.

 $ ln -s ~/inbox / 

работает. Почему это?

В разрешении пути , имеющий конечный / эквивалент конечного /. – другими словами, ~/inbox/ эквивалентно ~/inbox/. в данном контексте. Поэтому команда ln пытается создать вызываемую ссылку . в корневом каталоге (и, что неудивительно, не удается).

Zsh удаляет трейлинг / когда вы нажимаете « Пробел» после завершения работы с каталогом (если не настроено так не делать этого). Я не знаю, можно ли сделать так, чтобы сделать это.

Это именно то, что вы побежали?

Is a directory похожим на вашу ОС, печатающую ошибку EISDIR , которая может произойти двумя способами:

Попытка перезаписать существующую символическую ссылку, указывающую на каталог.

 $ cd $(mktemp -d) $ mkdir dir $ ln -s dir dir # this creates dir/dir $ ln -s dir dir # this fails, because dir/dir already exists ln: failed to create symbolic link `dir/dir': File exists 

Попытка создать жесткую ссылку на каталог.

 $ cd $(mktemp -d) $ mkdir dir $ ln dir dirlink ln: `dir': hard link not allowed for directory 

Если это то, что вы запускали, что делает type ln или alias ln print?