คุณช่วยอธิบายเรื่องนี้ให้ฉัน #ln -s ทราบ:“ เป้าหมายไม่ใช่ไดเรกทอรี” หรือไม่


12

ฉันทำสิ่งนี้:

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

และฉันได้รับ:

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

/ etc / apache2 / sites-available / LoginProject เป็นไฟล์

แก้ไข:

คำสั่งนี้:

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

เอาท์พุท:

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

แก้ไข 2:

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

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

1
คุณสามารถเพิ่มls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProjectเอาท์พุท?
Belmin Fernandez

แน่นอนฉันมีมันเพิ่ม
fceruti

สำหรับทุกคนที่มาถึงที่นี่เพื่อค้นหาข้อผิดพลาดนี้ แต่วิธีการแก้ปัญหาข้างต้นไม่ได้ผล ... หากคุณกำลังเชื่อมโยงไดเรกทอรีให้ตรวจสอบให้แน่ใจว่าไม่มีเครื่องหมายทับต่อท้ายสำหรับเป้าหมายหรือชื่อ
Sherri

คำตอบ:


5

ลอง: sudo a2ensite LoginProject

คุณสามารถทำได้ sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/


ไฟล์นี้เป็น: / etc / apache2 / sites-available / LoginProject ต่อไปฉันพยายามเปลี่ยนคำสั่งแล้ว แต่ก็ใช้ไม่ได้
fceruti

ขออภัยที่ไม่ถูกต้องดูแก้ไข
xofer

ขอบคุณ! โครงการเข้าสู่ระบบ a2ensite ใช้งานได้! ไม่ได้ลองคำสั่งอื่น มันยังแปลกมาก ... ฉันไม่เข้าใจจริงๆ
fceruti

โดยปกติ ln ยอมรับ 2 พา ธ ไฟล์และถ้ามากกว่าสองเป้าหมายต้องเป็นไดเร็กทอรี ฉันยังสงสัยว่าทำไมมันถึงนับพารามิเตอร์ของคุณแบบนี้ !!!
SparX

27

คุณอาจคัดลอกและวางคำสั่งจากแหล่งอื่นและระบบแทรกผิดประเภทln -s -ลองลบ-และพิมพ์อีกครั้งด้วยตนเอง


1
คุณบันทึกวันของฉันด้วยคำตอบนี้! ครึ่งหนึ่งของวัน ฉันใช้เวลาอีกครึ่งหนึ่งเพื่อดึงผมที่เหลืออยู่ของฉันพยายามที่จะคิดออกว่าฉันทำอะไรผิดและต้องการไดเรกทอรีอะไรจากฉัน ปรากฎว่าฉันมีเส้นประที่ผิดอย่างแน่นอน
Alexander Amelkin

สุดยอดคำตอบที่ดีที่สุดที่ควรได้รับการยอมรับ
The Godfather

ยิ่งใหญ่ !!! ขอบคุณ.
nano.galvao

6

ปัญหาคือความแตกต่างระหว่างสิ่งนี้ ...

sudo ln s path1 path2

และนี่...

sudo ln -s path1 path2

ไม่เห็นความแตกต่างใช่ไหม เส้นประสั้นกับเส้นประยาว

เส้นประยาวไม่ถูกตีความว่าเป็นตัวเลือกดังนั้นlnจะเห็นสามเส้นทางบนบรรทัดคำสั่งและคาดว่าจะเป็นไดเรกทอรีสุดท้าย


2
คุณสามารถเห็นเส้นประยาวในโพสต์ต้นฉบับ นี่คือคำตอบ
Xalorous

3

ลองlnด้วยการโต้แย้งเดียวด้านล่างและดูว่ามันช่วยได้ไหม

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

2

ลองอ้างถึงไดเรกทอรีและยกเลิกsudoอาร์กิวเมนต์คำสั่งดังนี้:

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

ไม่นี่ไม่ใช่เคล็ดลับ
fceruti

ทำการแก้ไข ลองอีกครั้งตอนนี้
Belmin Fernandez

ฉันคัดลอกแล้ววางและได้รับ: ln: target `/ etc / apache2 / sites-enabled / LoginProject 'ไม่ใช่ไดเรกทอรี
fceruti

ชาย. ฉันกระทืบ ฉันเพิ่งเห็นว่าเมื่อมีเป้าหมาย แต่lsผลลัพธ์ของคุณแสดงว่าไม่ สงสัยว่าเป็นปัญหา SELinux หรือ ACL หรือไม่ Meh คุณได้มันไปทำงานกับคำตอบของ @ fuscata งานที่ดี :-)
Belmin Fernandez

ขอบคุณสำหรับเวลาของคุณ @fuscata ได้ทางออกบางทีอาจจะไม่ใช่คำตอบว่าทำไมถึงมีความสุขเกิดขึ้น แต่ก็ยัง ... ขอบคุณอีกครั้ง
fceruti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.