Czy możesz mi to wyjaśnić #ln -s: „cel nie jest katalogiem”?

12

Robię to:

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

I dostaję:

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

/ etc / apache2 / sites-available / LoginProject to plik

edytować:

to polecenie:

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

wyjścia:

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

edycja 2:

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

$ls /etc/apache2/sites-enabled/
$
fceruti
źródło
1
Czy możesz dodać ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectwynik?
Belmin Fernandez,
jasne,
Dla każdego, kto tu przyjeżdża i szuka tego błędu, ale powyższe rozwiązania nie działają ... jeśli dowiązujesz katalog do katalogu, upewnij się, że NIE ma on ukośnika końcowego ani nazwy celu, ani nazwy.
Sherri

Odpowiedzi:

5

Próbować: sudo a2ensite LoginProject

Ty też możesz to zrobić sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/

Xofer
źródło
Plik to: / etc / apache2 / sites-available / LoginProject W każdym razie próbowałem zmienić kolejność i nie
działałem
Przepraszam, że to było złe, patrz edycja
Xofer
Dzięki! a2ensite LoginProject działał! nie próbował innego polecenia. To wciąż bardzo dziwne ... Naprawdę tego nie rozumiem
fceruti
Normalnie ln akceptuje 2 ścieżki plików, a jeśli jest więcej niż dwie, celem musi być katalog. Nadal zastanawiam się, dlaczego liczy się twoje parametry w ten sposób !!!
SparX
27

Prawdopodobnie skopiowałeś i wkleiłeś ln -spolecenie z innego źródła, a system wstawił niewłaściwy typ -. Spróbuj usunąć -i wpisz go ponownie ręcznie.

Dr Julie
źródło
1
Uratowałeś mi dzień dzięki tej odpowiedzi! Cóż, połowa dnia. Druga połowa spędziłam na usuwaniu resztek włosów, próbując dowiedzieć się, co robię źle i jakiego katalogu chce ode mnie. Okazało się, że rzeczywiście miałem niewłaściwą kreskę na linii.
Alexander Amelkin
Świetna, najlepsza odpowiedź, którą należy przyjąć
Ojciec Chrzestny
Świetny!!! Dziękuję Ci.
nano.galvao
6

Problemem jest różnica między tym ...

sudo ln s path1 path2

i to...

sudo ln -s path1 path2

Nie widzisz różnicy? Krótka kreska vs. długa kreska.

Długa kreska nie jest interpretowany jako opcja i tak ln widzi trzy ścieżki w linii poleceń i oczekuje, że ostatni być katalogiem.

Chris Steinbach
źródło
2
Możesz zobaczyć długą kreskę w oryginalnym poście. Oto odpowiedź.
Xalorous,
3

Spróbuj ln z jednym argumentem jak poniżej i zobacz, czy to pomoże,

cd /etc/apache2/sites-enabled/ ; sudo ln -s /etc/apache2/sites-available/LoginProject
SparX
źródło
2

Spróbuj zacytować katalogi i zakończyć sudoargumenty polecenia tak:

sudo -- \ln s "/etc/apache2/sites-available/LoginProject" "/etc/apache2/sites-enabled/LoginProject"
Belmin Fernandez
źródło
Nie, to nie
załatwiło problemu
Dokonałem edycji. Spróbuj ponownie teraz.
Belmin Fernandez,
Skopiowałem to i dostałem: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'nie jest katalogiem
fceruti
Mężczyzna. Jestem zdeptany. Widziałem to tylko wtedy, gdy cel istnieje. Ale twoje lswyniki pokazują, że tak nie jest. Zastanawiasz się, czy jest to kwestia SELinuksa lub ACL. Meh, masz do pracy z odpowiedzią @ fuscata. Dobra robota :-)
Belmin Fernandez
Dzięki za poświęcony czas, @fuscata dostał rozwiązanie, może nie odpowiedź na pytanie, dlaczego tak się stało, ale nadal ... dzięki jeszcze raz
fceruti