Можете ли вы объяснить это мне #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

Для тех, кто прибывает сюда и ищет эту ошибку, но вышеприведенные решения не работают ... если вы создаете символическую ссылку на каталог, убедитесь, что в нем нет косой черты ни на цели, ни на имени.
Шерри

Ответы:


4

Пытаться: sudo a2ensite LoginProject

Вы могли бы также сделать sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/


Файл: / etc / apache2 / sites-available / LoginProject Во всяком случае, я попытался изменить порядок и не сработал
fceruti

Извините, что был не прав, см. Редактировать
xofer

Спасибо! a2ensite LoginProject работал! не пробовал другую команду. Это все еще очень странно ... Я действительно не понимаю
fceruti

Обычно ln принимает 2 пути к файлам, и если их больше двух, целью должен быть каталог. Я до сих пор удивляюсь, почему он так считает ваши параметры !!!
SparX

26

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


Вы спасли мой день с этим ответом! Ну, пол дня. Я потратил вторую половину, вытаскивая остатки моих волос, пытаясь выяснить, что я делаю неправильно, и какой каталог он хочет от меня. Оказалось, что у меня действительно была неправильная черта в линии.
Александр Амелькин

Отлично, лучший ответ, который следует принять
Крестный отец

Большой!!! Спасибо.
nano.galvao

6

Проблема в том, что разница между этим ...

sudo ln s path1 path2

и это...

sudo ln -s path1 path2

Не видите разницу? Короткая черта против длинной черты.

Длинная черта не интерпретируется как опция, поэтому ln видит три пути в командной строке и ожидает, что последний будет каталогом.


2
Вы можете увидеть длинную черту в оригинальном сообщении. Это ответ.
Ксалори

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.