Làm thế nào tôi có thể tạo một liên kết tượng trưng trong Terminal?


Câu trả lời:


543
┌── ln(1) link, ln -- make links
   ┌── Create a symbolic link.
                            ┌── the optional path to the intended symlink
                               if omitted, symlink is in . named as destination
                               can use . or ~ or other relative paths
                      ┌─────┴────────┐
ln -s /path/to/original /path/to/symlink
      └───────┬───────┘
              └── the path to the original file/folder
                  can use . or ~ or other relative paths
$ echo content > original
$ ln -s original symlink
$ ls -la original symlink
-rw-r--r--  1 grgarside  staff    8 28 Jan 18:44 original
lrwxr-xr-x  1 grgarside  staff    8 28 Jan 18:44 symlink -> original
$ cat symlink
content

Để biết thêm thông tin về ln (1) xem trang người đàn ông .

Đường dẫn đến symlink là tùy chọn; nếu bị bỏ qua, lnmặc định tạo liên kết có cùng tên với đích, trong thư mục hiện tại:

$ cd ~/Documents
$ ln -s ../Pictures
$ ls -l Pictures
lrwxr-xr-x  1 user  staff  11 Feb  1 17:05 Pictures -> ../Pictures

Để tạo một liên kết tượng trưng để thay thế một thư mục hệ thống (ví dụ: nếu bạn muốn /Userstrỏ đến một ổ đĩa khác), bạn cần phải tắt Bảo vệ toàn vẹn hệ thống . Bạn có thể kích hoạt lại nó sau khi liên kết tượng trưng được thiết lập.


63
Nếu chỉ có trang người đàn ông rõ ràng như câu trả lời của bạn!
Adrian Lynch

sự cho phép bị từ chối: S bạn có thể cho tôi một gợi ý? cố gắng tạo symlink cho người dùng để tôi có thể sử dụng nó trên đĩa cứng khác và ssd chỉ có symlink. cảm ơn
Ewoks

2
@patrix Tôi đã chỉnh sửa câu trả lời của mình để làm rõ; cảm thấy tự do để chỉnh sửa thêm.
grg

4
Thực tế thú vị: bản gốc không cần thực sự tồn tại. Lệnh ln -s "This directory is no longer in use" READMEsẽ hoàn toàn hợp pháp, và sau đó bất kỳ ai đang thực thi ls -lsẽ thấy thông báo.
Edward Falk

1
Để tham khảo trong tương lai: Bạn không cần phải di chuyển / Người dùng trên macOS để tiết kiệm dung lượng. Bạn có thể thay đổi đường dẫn thư mục chính của người dùng trong Tùy chọn hệ thống trong Người dùng & Nhóm bằng cách nhấp chuột phải vào mục nhập danh sách người dùng.
Peter W.

73

Lệnh được gọi ln. Nếu được sử dụng với tùy chọn, -snó sẽ tạo ra một liên kết tượng trưng trong thư mục hiện tại:

ln -s /any/file/on/the/disk linked-file

1
Tập tin được liên kết phải tồn tại đầu tiên? Tôi nhận được một tập tin không tìm thấy lỗi trên mục tiêu.
AlxVallejo

2
Các tập tin không (bạn nhận được một thông báo lỗi nếu nó), nhưng tất cả các thư mục trong bất kỳ đường dẫn. Nếu bạn gặp khó khăn, vui lòng đặt câu hỏi mới bằng nút Hỏi câu hỏi ở trên cùng bên phải. Bao gồm một liên kết đến câu hỏi này để cung cấp bối cảnh.
nohillside

Liên kết tượng trưng không nên tồn tại trước khi bạn chạy lệnh này. Nhưng một con đường hợp lệ là cần thiết theo như tôi biết. Nếu thư mục của tệp đầu ra không tồn tại trước khi bạn chạy lệnh này, bạn cũng sẽ gặp No such file or directorylỗi.
Deniz Kaplan

34

Tôi biết câu hỏi này rõ ràng là hỏi về Terminal, nhưng nếu bạn đang ở trong GUI Land và không muốn vào Terminal Land, bạn có thể sử dụng SymbolicLinker . Điều này đặt tùy chọn "Tạo liên kết tượng trưng" trong menu Dịch vụ của bạn trong Finder.

Một menu ngữ cảnh cho một thư mục, hiển thị menu con "Dịch vụ", với "Tạo liên kết tượng trưng" bị mờ

Một menu ngữ cảnh cho một liên kết tượng trưng, ​​với "Tạo liên kết tượng trưng" bị mờ


3
Tôi rất muốn biết lý do tại sao điều này bị hạ cấp để tôi có thể đưa ra câu trả lời chất lượng cao hơn kể từ bây giờ :)
Ben Leggiero

10
có lẽ bởi vì câu hỏi là "Làm thế nào tôi có thể tạo một liên kết tượng trưng trong Terminal?" Nhưng tôi không đánh giá thấp bạn :)
vedrano

1
@EdwardFalk Tôi nghĩ ở El Capitan, bạn có thể giữ Command+ Optiontrong khi kéo tệp ... sẽ cập nhật câu trả lời sau
Ben Leggiero

1
@BenLeggiero Điều đó làm cho một bí danh.
Andy Stewart

2
@BenLeggerio, Sự khác biệt được giải thích ở đây: apple.stackexchange.com/questions/2991/ Ấn
MiB


5

ln -s /some/dir/ ~/Desktop/dir

Bạn cũng có thể tạo một liên kết tượng trưng cho thư mục bằng cách sử dụng cùng một lệnh

ln -s "$(pwd)" ~/Desktop/dir

Để tạo symlink đến thư mục hiện tại bạn đang ở.


2
Một .(dấu chấm) đơn giản sẽ cung cấp cho pwd. Không cần tranh luận ưa thích :)
mylogon

@mylogon hahaha đôi khi tôi muốn lật đổ. đơn giản hóa câu trả lời của tôi!
Gerald

@mylogon tôi mới nhận ra rằng nó .không hoạt động trên macOS. chưa thử trên linux. sử dụng ./kết quả trong foo -> ./foođó chỉ ra chính nó.
Gerald

Lệnh đầy đủ bạn đã gõ là gì?
mylogon
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.