Puoi spiegarmi questo #ln -s: "target non è una directory"?


12

Sto facendo questo:

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

E ottengo:

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

/ etc / apache2 / sites-available / LoginProject è un file

modificare:

questo comando:

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

uscite:

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

modifica 2:

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

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

1
Puoi aggiungere l' ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectoutput?
Belmin Fernandez,

certo, lì l'ho aggiunto
fceruti il

Per chiunque arrivi qui alla ricerca di questo errore, ma le soluzioni sopra riportate non funzionano ... se si collega in modo simbolico una directory, assicurarsi che NON abbia una barra finale sulla destinazione o sul nome.
Sherri,

Risposte:


5

Provare: sudo a2ensite LoginProject

Potresti anche fare sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/


Il file è: / etc / apache2 / sites-available / LoginProject Comunque, ho provato a cambiare l'ordine e non ha funzionato
fceruti,

Ci

Grazie! il LoginProject a2ensite ha funzionato! non ha provato l'altro comando. È ancora molto strano ... Davvero non capisco
fceruti,

Normalmente, ln accetta 2 percorsi di file e se è più di due, la destinazione deve essere una directory. Mi chiedo ancora perché conti i tuoi parametri in questo modo !!!
SparX,

27

Probabilmente hai copiato e incollato il ln -scomando da un'altra fonte e il sistema ha inserito il tipo sbagliato di -. Prova a eliminare -e digitandolo di nuovo manualmente.


1
Mi hai salvato la giornata con questa risposta! Bene, mezza giornata. Ho passato l'altra metà a strappare i resti dei miei capelli cercando di capire cosa stavo facendo di sbagliato e quale directory vuole da me. Si è scoperto che avevo davvero un trattino sbagliato nella linea.
Alexander Amelkin,

Ottima, migliore risposta che dovrebbe essere accettata
Il Padrino

Grande!!! Grazie.
nano.galvao,

6

Il problema è la differenza tra questo ...

sudo ln s path1 path2

e questo...

sudo ln -s path1 path2

Non vedi la differenza? Trattino corto vs. trattino lungo.

Il trattino non viene interpretata come una scelta e così ln vede tre percorsi sulla linea di comando e si aspetta l'ultimo a essere una directory.


2
Puoi effettivamente vedere il trattino lungo nel post originale. Questa è la risposta
Xalorous,

3

Prova ln con singolo argomento come qui sotto e vedere se aiuta,

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

2

Prova a citare le directory e a terminare gli sudoargomenti dei comandi in questo modo:

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

No, questo non ha funzionato
fceruti il

Ho fatto una modifica. Provalo di nuovo ora.
Belmin Fernandez,

Ho copiato e incollato quello: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'non è una directory
fceruti,

Uomo. Sono calpestato. L'ho visto solo quando esiste l'obiettivo. Ma il tuo lsoutput mostra che non lo è. Mi chiedo se si tratti di un problema SELinux o ACL di qualche tipo. Meh, hai capito che funziona con la risposta di @ fuscata. Bel lavoro :-)
Belmin Fernandez,

Grazie per il tuo tempo amico, @fuscata ha ottenuto una soluzione, forse non una risposta al perché questo è successo, ma comunque ... grazie ancora
fceruti
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.