Bisakah Anda menjelaskan ini kepada saya # ln -s: "target bukan direktori"?

12

Saya sedang melakukan ini:

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

Dan saya mendapatkan:

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

/ etc / apache2 / sites-available / LoginProject itu adalah file

edit:

perintah ini:

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

output:

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

edit 2:

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

$ls /etc/apache2/sites-enabled/
$
fceruti
sumber
1
Bisakah Anda menambahkan ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectoutput?
Belmin Fernandez
tentu, di sana saya menambahkannya
fceruti
Bagi siapa saja yang datang ke sini mencari kesalahan ini, tetapi solusi di atas tidak bekerja ... jika Anda menghubungkan direktori, pastikan itu TIDAK memiliki garis miring pada target atau nama.
Sherri

Jawaban:

5

Mencoba: sudo a2ensite LoginProject

Anda juga bisa melakukannya sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/

xofer
sumber
File tersebut adalah: / etc / apache2 / sites-available / LoginProject Anyway, saya mencoba mengubah urutan, dan tidak berhasil
fceruti
Maaf itu salah, lihat sunting
xofer
Terima kasih! Proyek Login a2ensite bekerja! tidak mencoba perintah lainnya. Ini masih sangat aneh ... Saya benar-benar tidak mengerti
fceruti
Biasanya, ln menerima 2 path file dan jika lebih dari dua, target harus berupa direktori. Saya masih bertanya-tanya mengapa menghitung parameter Anda seperti ini !!!
SparX
27

Anda mungkin menyalin dan menempelkan ln -sperintah dari sumber lain dan sistem memasukkan jenis yang salah -. Coba hapus -dan ketikkan lagi secara manual.

Julie
sumber
1
Anda menyelamatkan hari saya dengan jawaban ini! Yah, setengah hari. Saya telah menghabiskan setengah lainnya mencabut sisa-sisa rambut saya mencoba untuk mencari tahu apa yang saya lakukan salah dan direktori apa yang diinginkannya dari saya. Ternyata saya memang memiliki garis yang salah di garis.
Alexander Amelkin
Hebat, jawaban terbaik yang harus diterima
The Godfather
Bagus!!! Terima kasih.
nano.galvao
6

Masalahnya adalah perbedaan antara ...

sudo ln s path1 path2

dan ini...

sudo ln -s path1 path2

Tidak melihat perbedaannya? Dash pendek vs dash panjang.

Tanda hubung panjang tidak diartikan sebagai opsi dan jadi ln melihat tiga jalur pada baris perintah dan mengharapkan yang terakhir menjadi direktori.

Chris Steinbach
sumber
2
Anda benar-benar dapat melihat tanda hubung panjang di pos asli. Ini jawabannya.
Xalorous
3

Coba ln dengan argumen tunggal seperti di bawah ini dan melihat apakah itu membantu,

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

Cobalah mengutip direktori dan mengakhiri sudoargumen perintah seperti ini:

sudo -- \ln s "/etc/apache2/sites-available/LoginProject" "/etc/apache2/sites-enabled/LoginProject"
Belmin Fernandez
sumber
Tidak, ini tidak berhasil
fceruti
Edit. Coba lagi sekarang.
Belmin Fernandez
Saya salin disisipkan itu dan mendapat: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'bukan direktori
fceruti
Manusia. Saya diinjak. Saya hanya melihat itu ketika target ada. Tetapi lsoutput Anda menunjukkan bahwa tidak. Ingin tahu apakah itu semacam SELinux atau ACL. Meh, Anda berhasil dengan jawaban @ fuscata.
Kerja
Terima kasih untuk manusimu, @fuscata punya solusi, mungkin bukan jawaban mengapa itu terjadi, tapi tetap saja ... terima kasih lagi
fceruti