Pouvez-vous m'expliquer cela #ln -s: «la cible n'est pas un répertoire»?


12

Je fais ça:

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

Et je reçois:

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

/ etc / apache2 / sites-available / LoginProject c'est un fichier

Éditer:

cette commande:

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

les sorties:

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

modifier 2:

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

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

1
Pouvez-vous ajouter la ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectsortie?
Belmin Fernandez

bien sûr, je l'ai ajouté
fceruti

Pour toute personne qui arrive ici à la recherche de cette erreur, mais les solutions ci-dessus ne fonctionnent pas ... si vous créez un lien symbolique vers un répertoire, assurez-vous qu'il n'a PAS de barre oblique de fin sur la cible ou le nom.
Sherri

Réponses:


4

Essayer: sudo a2ensite LoginProject

Vous pourriez aussi faire sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/


Le fichier est: / etc / apache2 / sites-available / LoginProject Quoi qu'il en soit, j'ai essayé de changer l'ordre et je n'ai pas fonctionné
fceruti

Désolé, c'était faux, voir modifier
xofer

Merci! le LoginProject a2ensite a fonctionné! n'a pas essayé l'autre commande. C'est encore très bizarre ... je ne comprends vraiment pas
fceruti

Normalement, ln accepte 2 chemins de fichier et s'il est supérieur à deux, la cible doit être un répertoire. Je me demande encore pourquoi ça compte vos paramètres comme ça !!!
SparX

26

Vous avez probablement copié et collé la ln -scommande à partir d'une autre source et le système a inséré le mauvais type de -. Essayez de supprimer le -et de le saisir à nouveau manuellement.


Vous avez sauvé ma journée avec cette réponse! Eh bien, la moitié de la journée. J'ai passé l'autre moitié à retirer les restes de mes cheveux en essayant de comprendre ce que je faisais mal et quel répertoire il voulait de moi. Il s'est avéré que j'avais effectivement un mauvais tiret dans la ligne.
Alexander Amelkin

Grande, meilleure réponse qui devrait être acceptée
The Godfather

Génial!!! Je vous remercie.
nano.galvao

6

Le problème est la différence entre cela ...

sudo ln s path1 path2

et ça...

sudo ln -s path1 path2

Vous ne voyez pas la différence? Tiret court vs tiret long.

Le long tiret n'est pas interprété comme une option et donc ln voit trois chemins sur la ligne de commande et s'attend à ce que le dernier soit un répertoire.


2
Vous pouvez réellement voir le long tiret dans le message d'origine. Telle est la réponse.
Xalorous

3

Essayez ln avec un seul argument comme ci-dessous et voyez si cela aide,

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

2

Essayez de citer les répertoires et de terminer les sudoarguments de commande comme suit:

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

Non, cela n'a pas fait l'affaire
fceruti

A fait un montage. Réessayez maintenant.
Belmin Fernandez

J'ai copié et collé: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'n'est pas un répertoire
fceruti

Homme. Je suis piétiné. Je ne l'ai vu que lorsque la cible existe. Mais votre lssortie montre que non. Vous vous demandez si c'est un problème SELinux ou ACL. Meh, vous l'avez fait fonctionner avec la réponse de @ fuscata. Bon travail :-)
Belmin Fernandez

Merci pour votre temps, @fuscata a obtenu une solution, peut-être pas une réponse à pourquoi cela s'est produit, mais quand même ... merci encore
fceruti
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.