Liên kết tượng trưng (Symlink) là gì? | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Liên kết tượng trưng (Symlink) là gì?

Chia sẻ kiến thức 08/03/2022

Liên kết tượng trưng (symbolic link) có thể thay đổi cách bạn sử dụng tệp và thư mục trên Linux, macOS và Windows.

Là một người dùng máy tính, nếu bạn phải định nghĩa một shortcut, có lẽ bạn sẽ nói rằng đó là một “đường tắt” đến một tệp, thư mục hoặc một ứng dụng? Đúng là như vậy. 

Nhưng định nghĩa ngắn gọn đó không nói lên toàn bộ câu chuyện. Nó ngụ ý rằng tất cả các shortcut đều giống nhau trong khi thực tế không phải vậy. Có một số kiểu shortcut. Bài viết này sẽ tập trung vào liên kết tượng trưng, còn được gọi là symlink hoặc soft link (liên kết mềm).

Hãy cùng FUNiX tìm hiểu xem liên kết tượng trưng là gì, cách tạo liên kết tượng trưng trên Linux cũng như macOS và Windows, tại sao bạn cần loại shortcut đặc biệt này, v.v.

Liên kết tượng trưng là gì?

Liên kết tượng trưng đúng là một tệp shortcut (shortcut file). Nhưng nó khác với một shortcut tiêu chuẩn, chẳng hạn như một trình cài đặt chương trình (program installer) đặt trên desktop Windows của bạn để làm cho chương trình dễ chạy hơn.

Đương nhiên, nhấp vào một trong hai loại shortcut đều sẽ mở đối tượng được liên kết, nhưng những gì diễn ra bên dưới lại khác nhau trong hai trường hợp, như chúng ta sẽ thấy dưới đây. .

Trong khi một shortcut tiêu chuẩn trỏ đến một đối tượng nhất định, một liên kết tượng trưng lại làm như thể đối tượng được liên kết thực sự ở đó. Máy tính của bạn và các ứng dụng trên đó sẽ đọc liên kết tượng trưng như chính đối tượng đích.

Trên macOS, bạn nhận được bằng chứng về điều này dưới dạng thông báo “tệp đã tồn tại” (file exists) khi bạn cố gắng tạo liên kết tượng trưng ở cùng một vị trí với đối tượng ban đầu. Ngay cả khi bạn cố gắng di chuyển liên kết tượng trưng đến cùng một vị trí sau khi tạo nó ở nơi khác, nó sẽ được đổi tên thành một bản sao.

Tệp tồn tại thông báo khi tạo liên kết biểu tượng trong Terminal trên macOS

Liên kết tượng trưng so với Shortcut tiêu chuẩn

Giả sử bạn có một thư mục trên ổ cứng mà bạn muốn đồng bộ hóa với Dropbox mà không cần di chuyển chính thư mục đó sang Dropbox.

Trong trường hợp này, việc tạo shortcut đến thư mục trong Dropbox là vô nghĩa. Shortcut sẽ hoạt động trên thiết bị mà bạn đã tạo. Dropbox cũng sẽ đồng bộ hóa shortcut. Tuy nhiên, tệp shortcut đã đồng bộ hóa lại không thể sử dụng được khi bạn truy cập nó từ một máy tính khác, tức là nó không dẫn đến đâu.

Nếu shortcut đó là một liên kết tượng trưng, ​​bạn sẽ không phải đối mặt với vấn đề này. Đó là bởi vì Dropbox đọc liên kết tượng trưng dưới dạng thư mục thực và đồng bộ hóa dữ liệu từ thư mục đó. Sau đó, bạn có thể truy cập thư mục và nội dung của nó trên tất cả các thiết bị đã bật đồng bộ hóa Dropbox, mặc dù thư mục gốc không nằm trong Dropbox.

Hãy nhớ rằng cho dù đó là một shortcut thông thường hay một liên kết tượng trưng, ​​việc xóa nó sẽ không ảnh hưởng đến đối tượng ban đầu theo bất kỳ cách nào.

Tại sao bạn cần liên kết tượng trưng?

Nói chung, bạn nên tạo các liên kết tượng trưng thay vì các shortcut khi bạn muốn:

  • Truy cập tệp từ nhiều vị trí mà không cần tạo bản sao và không sử dụng nhiều dung lượng đĩa. (Các liên kết tượng trưng chỉ có kích thước vài byte.)
  • Duy trì các phiên bản khác nhau của tệp trong khi đảm bảo rằng bất kỳ đường dẫn (pointer) nào đến tệp đó luôn dẫn đến phiên bản mới nhất hoặc cập nhật. (liên kết tượng trưng vẫn hoạt động ngay cả khi bạn thay thế tệp đích bằng một tệp khác có cùng tên.)
  • Di chuyển dữ liệu khỏi ổ C: \ của bạn đến một ổ cứng thứ cấp chẳng hạn mà không làm gián đoạn các chức năng của hệ thống hoặc ứng dụng cần có dữ liệu trên ổ C: \.

Bạn có thể sử dụng liên kết tượng trưng trong nhiều trường hợp khác nữa.  

Cách tạo liên kết tượng trưng

Bạn có thể tạo liên kết mềm bằng cách sử dụng terminal hoặc dòng lệnh. 

Trên Linux và macOS

Lệnh đầu cuối để tạo liên kết tượng trưng trên macOS

Trên Linux, bạn có thể tạo một liên kết tượng trưng cho một tệp hoặc thư mục bằng lệnh terminal sau:

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

Lệnh tương tự cũng hoạt động trên macOS, vì macOS là hệ điều hành dựa trên UNIX giống như Linux.

Xem ảnh chụp màn hình ở trên để biết lệnh mẫu.

Trình quản lý tệp có sẵn trong một số môi trường desktop Linux nhất định cho phép bạn tạo một liên kết mềm thông qua menu chuột phải, vì vậy bạn có thể muốn kiểm tra xem ứng dụng khám phá tệp (file explorer) của mình có tùy chọn đó hay không.

Trình quản lý tệp Nautilus phổ biến, đi kèm với nhiều bản phân phối Linux khác nhau, có  tùy chọn menu Make link hiện đã biến mất. Nhưng bạn vẫn có thể tạo liên kết tượng trưng trong Nautilus bằng cách giữ phím Ctrl + Shift và kéo tệp đích đến vị trí mà bạn muốn liên kết tượng trưng hiển thị. Đừng lo lắng, tệp gốc sẽ được giữ nguyên.

Trên Windows

Bạn sẽ cần mở cửa sổ Command Prompt với tư cách là quản trị viên và nhập lệnh sau để tạo liên kết tượng trưng:

mklink [/path/to/symlink] [/path/to/file]

Đối với các liên kết tượng trưng đến các thư mục, bạn phải chỉnh sửa lệnh một chút bằng cách sử dụng cờ /d:

mklink /d [/path/to/symlink] [/path/to/file]

Nếu bạn không muốn làm việc với dòng lệnh, bạn có thể sử dụng một công cụ đồ họa có tên là Link Shell Extension để tạo các liên kết tượng trưng. Đây là một trong những phần mở rộng Windows File Explorer tốt nhất để quản lý tệp .

Lưu ý: Hệ thống sẽ không ngăn bạn tạo một liên kết tượng trưng trong một liên kết tượng trưng, ​​nhưng tốt nhất là bạn nên tránh làm như vậy. Nếu không, bạn sẽ tạo ra một vòng lặp vô hạn có thể gây ra sự cố cho các dịch vụ trên toàn hệ thống như phần mềm quét vi-rút.

Liên kết biểu tượng và bí danh cho tệp trong Finder trên macOS

Nếu bạn đã từng tạo Alias trên macOS, bạn sẽ nhận thấy rằng chúng hoạt động giống như các liên kết tượng trưng. Cả hai loại shortcut đều tham chiếu đến tên đường dẫn của tệp hoặc thư mục được liên kết.

Sự khác biệt là alias cũng đánh dấu đối tượng được liên kết với một định danh gọi là inode (index node – nút chỉ mục). Định danh (identifier) này là duy nhất cho đối tượng và theo sau nó trong hệ thống tệp.

Đó là lý do tại sao alias sẽ hoạt động tốt ngay cả khi bạn di chuyển mục tiêu (target) của nó đến một vị trí khác. Hãy thử điều đó với một liên kết tượng trưng và bạn sẽ gặp lỗi. (Bạn có thể tự di chuyển alias và liên kết tượng trưng mà không gặp bất kỳ sự cố nào, trừ khi bạn đang xử lý các tệp được hệ thống bảo vệ.)

Tất nhiên, cả hai loại shortcut sẽ vô dụng nếu bạn xóa tệp gốc hoặc đổi tên bất kỳ thư mục nào cao hơn trong hệ thống phân cấp.

Không thể phân biệt sự khác biệt giữa alias và liên kết tượng trưng vì bạn đã xóa thẻ (tag) alias khỏi tên tệp cho alias đó?

Mở trình kiểm tra tệp hoặc bảng Get Info cho từng shortcut và xem kích thước tệp trong phần General. Nếu nó thông báo (zero bytes on disk) (không có byte nào trên đĩa), bạn đang xử lý một liên kết tượng trưng.

Các liên kết tượng trưng (trong thư mục hiện tại) cũng sẽ tự hiển thị khi bạn sử dụng lệnh terminal này:

ls -la

Lệnh này cũng hoạt động trên Linux và bạn sẽ thấy liên kết tượng trưng trỏ đến vị trí của đối tượng ban đầu.

 Các liên kết tượng trưng tốt hơn các shortcut

Các liên kết tượng trưng nghe có vẻ khó hiểu, nhưng nếu bạn dành thời gian để tìm hiểu về chúng, bạn sẽ nhận ra rằng chúng khá dễ sử dụng đấy!

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/tag/what-is-a-symbolic-link-what-are-its-uses-makeuseof-explains/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại