Kết quả liên kết tượng trưng có thể thực hiện được trong lệnh không tìm thấy


24

Tôi đã tạo một liên kết tượng trưng (ngày hôm qua) như thế này:

sudo ln -s bin/python /usr/bin/prj-python

Khi tôi chạy:

prj-python file.py

Tôi có:

prj-python: command not found

Khi tôi thử tạo liên kết lại, tôi nhận được:

ln: tạo liên kết tượng trưng `/ usr / bin / prj-python ': Tệp tồn tại

Tại sao điều đó xảy ra? Của tôi $PATHlà:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / opt / real / RealPlayer

Câu trả lời:


21

Bạn đã quên dấu gạch chéo ban đầu trước đó bin/python. Điều này có nghĩa là /usr/bin/prj-pythonbây giờ chỉ đến /usr/bin/bin/python. Những gì bạn muốn nó chỉ ra chính xác?


Không có dấu gạch chéo ban đầu. những pwd/home/xralf/my_virtual_envvà nó có thư mục con binvới pythonlệnh
xralf

8
Hơn, bạn đã quên $PWD/trước đó bin.
rvs

Cảm ơn bạn, điều này đã giúp. Tôi đã sử dụng lệnh này như trong sách.
xralf

25

Những điều cần kiểm tra:

  • Thực hiện một ls -l /usr/bin/prj-python

Nếu nó giống như:

lrwxrwxrwx (...) /usr/bin/prj-python -> bin/python

Tệp thực sự sẽ được tìm kiếm tại / usr / bin / bin / python (đó là những gì xralf đã cố gắng nói). Sửa chữa:

rm /usr/bin/prj-python
ln -s /full/path/to/your/python /usr/bin/python-prj

  • Nếu bạn bin/pythonlà tập lệnh shell (hay còn gọi là tập lệnh bao bọc), hãy kiểm tra dòng #! - (đôi khi được gọi là shebang -line) ở dòng đầu tiên. Nếu có một lỗi đánh máy như #!/bin/bushvậy cũng sẽ gây ra một thông báo lỗi không tìm thấy .

cảm ơn bạn, câu trả lời của bạn thậm chí còn cẩn thận và giáo dục hơn. Xin lỗi tôi đã chấp nhận.
xralf

điều này đã giúp rất nhiều ... hầu hết các câu trả lời nếu được tìm thấy là về $ PATH
Ja8zyjits 16/1/2016

Tôi sử dụng một ln không có tham số. Mọi người nên sử dụng ln -s thực sự, do đó tạo ra một liên kết tượng trưng.
Cedric

Giúp, và tôi đã sử dụng ln -s $PWD/python /usr/bin/python-prj. $PWDđược sử dụng để có được đường dẫn đầy đủ.
Manwal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.