¿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/
$

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/


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.


¡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.


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

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"

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.