Câu hỏi Làm thế nào để symlink một tập tin trong Linux?


Tôi muốn tạo một liên kết tượng trưng trong Linux. Tôi đã viết lệnh bash này trong đó đường dẫn đầu tiên là thư mục tôi muốn liên kết và đường dẫn thứ hai là nguồn được biên dịch.

ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal 

Điều này có đúng không?


1474
2017-12-23 09:50


gốc




Các câu trả lời:


Để tạo một liên kết tượng trưng mới (sẽ thất bại nếu liên kết tượng trưng tồn tại):

ln -s /path/to/file /path/to/symlink

Để tạo hoặc cập nhật liên kết tượng trưng:

ln -sf /path/to/file /path/to/symlink

2962
2017-12-23 09:52



@micapam The ln cú pháp tương tự như cp cú pháp, ví dụ: nguồn  Nơi Đến. - Andrey
Dưới đây là một ghi nhớ cho bạn: l (i) n (k) -s (ymbolic) <target> <tên tùy chọn> (thực tế là tham số cuối cùng là tùy chọn giúp bạn tìm ra rằng nó không phải là mục tiêu) (btw bỏ đi đường dẫn đến liên kết tượng trưng tạo liên kết trong thư mục hiện tại có cùng tên cơ sở là đích) - UncleZeiv
@micapam Cũng giống như cp Là CoPy, ln Là LiNk. Chữ cái thứ nhất và thứ ba. - Cole Johnson
Tôi đã dành vài phút cố gắng tìm ra lý do tại sao điều này không hiệu quả đối với tôi. Nó tạo ra một liên kết tự lặp. Dường như tệp / path / to / phải tuyệt đối và không liên quan đến "thư mục hiện tại". Có lẽ điểm này ra trong câu trả lời? - Abhishek Anand
@AbhishekAnand nó đã được một vài năm, nhưng tôi chỉ muốn để lại lưu ý rằng nó làm làm việc với các đường dẫn tương đối; nó chỉ cần liên quan đến thư mục liên kết biểu tượng kết quả chứ không phải thư mục hiện tại. Những gì bạn viết như là đối số đường dẫn đầu tiên thực sự, đúng nguyên văn, văn bản sẽ nằm bên trong liên kết tượng trưng; đó là lý do tại sao, khi nó tương đối, nó phải liên quan đến liên kết. - JoL


ln -s TARGET LINK_NAME

Ở đâu -s làm cho nó mang tính biểu tượng.


244
2017-12-23 09:53



TARGET & LINKNAME là cách tốt hơn để ghi nhớ. btw để xóa sử dụng liên kết tượng trưng: unlink LINK_NAME - Silvan
Tôi thích cụm từ theo cách này: ln -s where-the-symlink-should-point where-to-place-the-symlink-itself. - totymedli


ln -s EXISTING_FILE_OR_DIRECTORY SYMLINK_NAME

232
2017-12-23 09:58



Tốt hơn câu trả lời được chấp nhận và được bao phủ với ngắn gọn rõ ràng. - Josh Habdas


ln -s target linkName

Bạn có thể xem trang người đàn ông tại đây:

http://linux.die.net/man/1/ln


78
2017-12-23 09:52



tốt để đề cập đến "mục tiêu" thay vì chỉ "tệp" - Alyas


(Bởi vì một bức ảnh ASCII trị giá một nghìn ký tự.)

Một mũi tên có thể là một sự ghi nhớ hữu ích, đặc biệt là vì nó gần như chính xác nó trông như thế nào trong Emacs.

Và hình ảnh lớn để bạn không bị nhầm lẫn với phiên bản Windows

Linux:

ln -s target <- linkName

Các cửa sổ:

mklink linkName -> target

Bạn cũng có thể xem chúng như

ln -s "to-here" <- "from-here"
mklink "from-here" -> "to-here"

Các from-here không nên tồn tại, nó sẽ được tạo ra, trong khi to-here nên đã tồn tại (IIRC).

(Tôi luôn bị lẫn lộn về việc liệu các lệnh và đối số khác nhau có nên liên quan đến một vị trí đã tồn tại từ trước hay một đối tượng được tạo ra hay không).

EDIT: Nó vẫn chìm trong từ từ cho tôi; Tôi có một cách khác tôi đã viết trong các ghi chú của mình.

ln -s (target exists) (link is made)
mklink (link is made) (target exists)

65
2018-05-05 18:09



Trong Emacs ' dired, thật dễ dàng, khi bạn đặt con trỏ lên mục tiêu, nhấn Svà nhập thư mục mà bạn muốn tạo liên kết. Rút ngắn khoảng cách giữa việc tưởng tượng kết quả mong muốn và nhập. Xem gnu.org/software/emacs/manual/html_node/emacs/…. - Brady Trainor
Bản ghi nhớ của tôi là ON: ln -s Original Newfile (liên kết tượng trưng) - robstarbuck
điều này làm việc cho tôi - Haider Ali


ln -s source_file target_file

http://unixhelp.ed.ac.uk/CGI/man-cgi?ln


21
2017-10-14 04:13



đó là định nghĩa ngược lại của "mục tiêu" so với man ln, gọi nó là ln -s TARGET LINK_NAME - wisbucky


Đối với câu hỏi ban đầu:


'ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal'

Điều này thực sự sẽ tạo ra liên kết tượng trưng (-s) từ tệp / thư mục:

<basebuild>/IpDome-kernel/kernel

vào liên kết mới của bạn

/home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal

Dưới đây là một số cách giúp bạn nhớ:

Đầu tiên, có trang người đàn ông cho ln. Bạn có thể truy cập thông qua tìm kiếm "man ln" trong google hoặc chỉ cần mở cửa sổ dòng lệnh và nhập man ln và bạn sẽ nhận được thông tin tương tự. Trang người đàn ông nêu rõ:

ln [TÙY CHỌN] ... [T] TARGET LINK_NAME (biểu mẫu 1)


Nếu phải tìm kiếm hoặc đọc qua trang người đàn ông mỗi lần không phải dành cho bạn, có thể bạn sẽ dễ dàng nhớ lại rằng tất cả lệnh nix hoạt động theo cùng một cách


17
2017-08-06 13:42





ln [-Ffhinsv] source_file [target_file]

    link, ln -- make links

        -s    Create a symbolic link.

    A symbolic link contains the name of the file to which it is linked. 

    An ln command appeared in Version 1 AT&T UNIX.

14
2017-12-23 09:56





Nếu bạn đang ở trong thư mục mà bạn muốn tạo liên kết tượng trưng, ​​thì bỏ qua đường dẫn thứ hai.

cd myfolder
ln -s target

Nó sẽ tạo ra liên kết tượng trưng target phía trong myfolder.

Cú pháp chung

ln -s TARGET LINK_NAME

10
2018-04-16 10:56





ln -s sourcepath linkpathname 

Chú thích:

-S tạo liên kết tượng trưng thay vì liên kết cứng


10
2018-05-11 07:34