¿Me puede explicar esto #ln -s: "target no es un directorio"?

12

Estoy haciendo esto:

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

Y obtengo:

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

/ etc / apache2 / sites-available / LoginProject es un archivo

editar:

este comando:

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

salidas:

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

editar 2:

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

$ls /etc/apache2/sites-enabled/
$
fceruti
fuente
1
¿Puedes agregar la ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectsalida?
Belmin Fernández
claro, ahí lo agregué
fceruti
Para cualquiera que llegue aquí en busca de este error, pero las soluciones anteriores no funcionan ... si está simultaneando un directorio, asegúrese de que NO tenga una barra diagonal ni en el destino ni en el nombre.
Sherri

Respuestas:

4

Tratar: sudo a2ensite LoginProject

También podrías hacer sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/

xofer
fuente
El archivo es: / etc / apache2 / sites-available / LoginProject De todos modos, intenté cambiar el orden, y no funcionó
fceruti
Lo siento, estaba mal, ver edición
xofer
¡Gracias! ¡El Proyecto de Acceso a2ensite funcionó! no probé el otro comando. Todavía es muy raro ... Realmente no lo entiendo
fceruti
Normalmente, ln acepta 2 rutas de archivo y si es más de dos, el destino debe ser un directorio. ¡Todavía me pregunto por qué cuenta tus parámetros de esta manera!
SparX
26

Probablemente copió y pegó el ln -scomando desde otra fuente y el sistema insertó el tipo incorrecto de -. Intenta eliminarlo -y volver a escribirlo manualmente.

Dra. Julie
fuente
¡Me salvaste el día con esta respuesta! Bueno, la mitad del día. Pasé la otra mitad sacando los restos de mi cabello tratando de averiguar qué estaba haciendo mal y qué directorio quería de mí. Resultó que efectivamente tenía un guión equivocado en la línea.
Alexander Amelkin
Genial, la mejor respuesta que debería aceptarse
The Godfather
¡¡¡Excelente!!! Gracias.
nano.galvao 01 de
6

El problema es la diferencia entre esto ...

sudo ln s path1 path2

y esto...

sudo ln -s path1 path2

¿No ves la diferencia? Carrera corta versus carrera larga.

El guión largo no se interpreta como una opción y por lo ln ve tres caminos en la línea de comandos y espera que los últimos en ser un directorio.

Chris Steinbach
fuente
2
De hecho, puedes ver el guión largo en la publicación original. Esta es la respuesta.
Xalorous
3

Pruebe ln con un solo argumento como el siguiente y vea si ayuda,

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

Intente citar los directorios y terminar los sudoargumentos del comando de la siguiente manera:

sudo -- \ln s "/etc/apache2/sites-available/LoginProject" "/etc/apache2/sites-enabled/LoginProject"
Belmin Fernandez
fuente
No, esto no
funcionó
Hizo una edición. Inténtalo de nuevo ahora.
Belmin Fernández
Copié pegado eso y obtuve: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'no es un directorio
fceruti
Hombre. Estoy pisoteado Solo he visto eso cuando el objetivo existe. Pero su lssalida muestra que no. Me pregunto si es un problema de SELinux o ACL de algún tipo. Meh, tienes que trabajar con la respuesta de @ fuscata. Buen trabajo :-)
Belmin Fernandez
Gracias por su tiempo hombre, @fuscata obtuvo una solución, tal vez no una respuesta a por qué sucedió eso, pero aún así ... gracias de nuevo
fceruti