Чи можете ви пояснити мені це #ln -s: "ціль - це не каталог"?


12

Я роблю це:

sudo ln s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/LoginProject

І я отримую:

ln: target `/etc/apache2/sites-enabled/LoginProject' is not a directory

/ etc / apache2 / sites-available / LoginProject це файл

редагувати:

ця команда:

ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProject

Виходи:

ls: cannot access /etc/apache2/sites-enabled/LoginProject: No such file or directory
-rw-r--r-- 1 root root 526 2011-09-27 18:40 /etc/apache2/sites-available/LoginProject

редагувати 2:

$ls /etc/apache2/sites-available/
default  default-ssl  LoginProject
$

$ls /etc/apache2/sites-enabled/
$

1
Чи можете ви додати ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectвихід?
Белмін Фернандес

звичайно, там я додав його
fceruti

Для тих, хто приїжджає сюди, шукаючи цю помилку, але вищезазначені рішення не працюють ... якщо ви посилаєтесь на каталог, переконайтеся, що він НЕ має косої косої риски ні на цілі, ні на імені.
Шеррі

Відповіді:


5

Спробуйте: sudo a2ensite LoginProject

Ви також можете зробити sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/


Файл є: / etc / apache2 / sites-available / LoginProject Так чи інакше, я спробував змінити порядок, і нічого не
вийшло

Вибачте, що було неправильно, див. Редагування
xofer

Дякую! a2ensite LoginProject працював! не спробував іншої команди. Це все ще дуже дивно ... Я дійсно цього не розумію
fceruti

Зазвичай, ln приймає 2 файлові контури, і якщо їх більше двох, ціль повинна бути каталогом. Мені все ще цікаво, чому так враховує ваші параметри !!!
SparX

27

Ви, ймовірно, скопіювали та вставили ln -sкоманду з іншого джерела, і система вставила неправильний тип -. Спробуйте видалити -та ввести його знову вручну.


1
Ти врятував мій день цією відповіддю! Ну, половина дня. Я провів другу половину, витягуючи залишки волосся, намагаючись зрозуміти, що я роблю не так і що саме він хоче від мене. Виявилося, що я справді мав неправильну тире в лінійці.
Олександр Амелькін

Чудова найкраща відповідь, яку слід прийняти
Хрещений батько

Чудово !!! Дякую.
nano.galvao

6

Проблема полягає в різниці між цим ...

sudo ln s path1 path2

і це...

sudo ln -s path1 path2

Не бачите різниці? Короткий тире проти довгого тире.

Довгий тире не інтерпретується як варіант, і тому ln бачить три контури в командному рядку і очікує, що останнім буде каталог.


2
Насправді ви можете побачити довгий тире в оригінальній публікації. Це відповідь.
Xalorous

3

Спробуйте ln з одним аргументом, як показано нижче, і подивіться, чи допомагає він,

cd /etc/apache2/sites-enabled/ ; sudo ln -s /etc/apache2/sites-available/LoginProject

2

Спробуйте цитувати каталоги та припинити такі sudoаргументи команд:

sudo -- \ln s "/etc/apache2/sites-available/LoginProject" "/etc/apache2/sites-enabled/LoginProject"

Ні, це не зробило хитрості
fceruti

Зробив правку. Спробуйте ще раз.
Белмін Фернандес

Я скопіював це вставлене і отримав: ln: target `/ etc / apache2 / sites-enabled / LoginProject '- це не каталог
fceruti

Людина. Я тупаю. Я бачив це лише тоді, коли ціль існує. Але ваш lsрезультат показує, що це не так. Цікаво, чи це якась проблема SELinux або ACL. Мех, ти змусив це працювати з відповіддю @ fuscata. Гарна робота :-)
Белмін Фернандес

Дякую за ваш час, людина, @fuscata отримав рішення, можливо, не відповідь, чому це сталося, але все-таки ... ще раз дякую
fceruti
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.