Làm thế nào để tạo một liên kết mềm hoặc tượng trưng?


Câu trả lời:


666

Xem man ln.

Để tạo một liên kết tượng trưng /usr/bin/barđể tham chiếu tệp gốc /opt/foo, hãy sử dụng:

ln -s /opt/foo /usr/bin/bar

Bạn sẽ cần phải áp dụng lệnh trên dưới dạng root (tức là với sudo).


Tôi đang sử dụng: sudo ln –s /etc/apache2/sites-available/redmine /etc/apache2/sites-enabled/000-redmineđang gặp lỗi:ln: target '/etc/apache2/sites-enabled/000-redmine' is not a directory
RAJ ...

1
Tài liệu Ubuntu cho biết "Tạo các liên kết cứng theo mặc định, các liên kết tượng trưng với --symbolic." Liệu giải pháp trên có tạo ra một liên kết tượng trưng như OP yêu cầu không?
Tanay

4
Tôi mặc dù César muốn đặt các tệp của mình vào / opt và / usr / bin để có liên kết tượng trưng, ​​không phải cách khác.
rủi ro

4
@mishap đúng như tôi quan tâm. Đó là cách khác.
Daniel Szmulewicz

2
@kevinmicke sau khi giải thích của bạn cuối cùng đã nhận ra rằng lời giải thích của câu trả lời đã được nêu theo thứ tự ngược lại từ lệnh, khiến bộ não của tôi (và những người khác) đọc ngược lại
Andrew


21

Nếu tệp thực thi 'p4v' ở / opt / bin / p4v, bạn chỉ cần chạy:

sudo ln -s /opt/bin/p4v /usr/bin/p4v
sudo chmod ugo+x /usr/bin/p4v

Sẽ tốt hơn nếu thêm / opt / bin (hoặc bất cứ nơi nào có thể thực thi được) vào đường dẫn của bạn:

echo "export PATH=\$PATH:/opt/bin" >> ~/.profile
reset

~/.profilesẽ tốt hơn cho thiết lập $PATH.
Lekensteyn

bạn có thể chỉnh sửa /etc/environmentđể sửa đổi hệ thống PATH rộng.
Michał rajer

4

Kiểm tra vị trí phần mềm bằng cách này.

which application-name #replace for the application you are looking for

ví dụ

which skype

đầu ra sẽ là cái này

/usr/bin/skype 

Để tạo liên kết mềm. ví dụ bạn muốn tạo liên kết mềm cho skypemáy tính để bàn của bạn

ln -s /usr/bin/skype ~/Desktop/

Để biết thêm thông tin về ln.

man ln

hoặc là

ln --help

2
ln -s -n ./TargetDirectory ./Nickname

Lưu ý, điều này hoạt động nếu cả hai nút của bạn ở dưới bạn trong cùng một cây. Bạn có thể sử dụng ký hiệu tương đối

  • Lệnh -s làm cho nó một liên kết tượng trưng
  • -n làm cho nó có thể tạo một liên kết tượng trưng kiểu thư mục

Chào mừng bạn đến với Askubfox.com. Trong trường hợp này, $để chỉ ra một dấu nhắc dòng lệnh là một lựa chọn kiểu và không có khả năng là một vấn đề. Tuy nhiên, hãy nhớ rằng bao gồm những thứ trong một khối mã khác với mã và đầu ra của nó có thể gây nhầm lẫn.
J. Starnes

1

Mẫu này hữu ích cho tôi hơn các câu trả lời ở trên. Có lẽ không chính xác hơn, chỉ cần ít bị xáo trộn:

ln -s <path/to/real/file-or-folder> <symlink path>

Chỉ cần thay thế các bộ phận trong <>'s


0

Nếu nó đang nói target is not a folder, điều đó có nghĩa là có khoảng trắng trong tên thư mục của bạn, ví dụ: New Foldercó một khoảng trắng

Bạn cần chỉnh sửa đường dẫn và thêm dấu gạch chéo ngược \sau mỗi khoảng trắng trong đường dẫn

ví dụ:

ln -s /opt/bin /usr/var/New\ Folder

3
Đây không phải là một câu trả lời cho câu hỏi OP. Xin vui lòng chờ cho đến khi bạn có đủ danh tiếng để thêm ý kiến.
derHugo

0

Tôi đã thấy rằng việc đi đến nơi bạn muốn liên kết sẽ dễ dàng hơn và sau đó tạo liên kết bằng cách sử dụng sudo ln -s /path/to/source/file, hơn là làm ln -s target source.

Vì vậy, trong trường hợp của bạn, tôi sẽ làm cd /usr/binsau đó sudo ln -s /opt/bin/pv4. Cách khác đã không được làm việc trong trường hợp của tôi.

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.