Symbolic link (liên kết tượng trưng, hay còn gọi là symlink và soft link) là một kiểu file đặc biệt, có nhiệm vụ trỏ đến một file hay thư mục khác. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng lệnh ln trong Linux để tạo symbolic link.
Các loại liên kết trong Linux
Các hệ thống Linux/UNIX có hai loại liên kết như sau:
- Liên kết cứng (Hard link): Có thể hiểu như một tên bổ sung cho file hiện có. Các liên kết này liên kết hai hay nhiều tên file với nhau trong cùng một inode. Người dùng có thể tạo một hay nhiều liên kết cứng cho một file duy nhất, tuy nhiên không thể tạo cho thư mục và file trên một filesystem hoặc phân vùng khác. Các liên kết cứng chủ yếu được dùng để lưu trữ nội dung file ở một vị trí cố định, thường để tránh việc nhân bản lượng dữ liệu quá lớn.
- Liên kết mềm (Soft link): Liên kết mềm có thể xem như các shortcut trong Windows, tức là trỏ gián tiếp đến một file hoặc thư mục nào đó. Loại liên kết này có thể trỏ đến một file hay thư mục trên một filesystem hoặc phân vùng khác.
![Hướng dẫn cách sử dụng lệnh Ln trong Linux 3 Linux có 2 loại liên kết là Hard Link và Soft Link](https://static-xf1.vietnix.vn/wp-content/uploads/2024/04/cac-loai-lien-ket-trong-linux.webp)
Vậy vì sao ta nên sử dụng symlink?
- Thứ nhất, loại liên kết này giúp ta hạn chế việc phải thao tác với những đường dẫn dài dòng, phức tạp. Thay vì nhớ một đường dẫn rất dài thì ta hoàn toàn có thể sử dụng một liên kết tượng trưng để trỏ đến.
- Bên cạnh đó, symlink còn giúp truy cập và lưu trữ file ở nhiều vị trí khác nhau mà không cần phải tạo nhiều bản sao.
![Hướng dẫn cách sử dụng lệnh Ln trong Linux 4 Vì sao nên sử dụng Symlink](https://static-xf1.vietnix.vn/wp-content/uploads/2024/04/vi-sao-nen-su-dung-symlink.webp)
Xem thêm: Tổng hợp 37 câu lệnh cơ bản trong Linux
Cách sử dụng lệnh ln trong Linux
ln là một công cụ command-line dùng để tạo liên kết giữa các file. Theo mặc định thì lệnh ln sẽ khởi tạo các liên kết cứng, vì vậy nếu muốn tạo symlink thì ta có thể thêm option -s (--symbolic) vào lệnh:
ln -s [OPTIONS] FILE LINK
- Nếu truyền vào cả FILE và LINK thì lệnh ln sẽ tạo một liên kết từ file được chỉ định trong FILE đến file được chỉ định trong LINK.
- Nếu chỉ truyền một file vào đối số của lệnh thì lệnh ln sẽ tạo liên kết đến file đó trong thư mục hiện tại. Tên của symlink bây giờ sẽ giống với tên file nó trỏ đến.
Theo mặc định thì lệnh ln sẽ không hiển thị output gì nếu thực thi thành công.
1. Tạo symlink trỏ đến một file
Để tạo symlink trỏ đến một file, ta có thể dùng lệnh sau:
ln -s source_file symbolic_link
Trong đó source_file là tên của file hiện có và cần tạo liên kết, còn symbolic_link là tên của liên kết tượng trưng. Tham số symbolic_link có thể có hoặc không, nhưng nếu không chỉ định thì lệnh ln sẽ tự tạo liên kết mới ở trong thư mục đang làm việc.
Giả sử ta cần tạo một symlink có tên my_link.txt, trỏ đến file my_file.txt thì có thể dùng lệnh sau:
ln -s my_file.txt my_link.txt
Để xác thực xem đã tạo symlink thành công chưa thì ta có thể dùng lệnh ls:
ls -l my_link.txt
Output:
lrwxrwxrwx 1 linuxize users 4 Nov 2 23:03 my_link.txt -> my_file.txt
Trong đó ký tự l là một flag chỉ loại file đại diện cho một symlink, còn -> là file mà liên kết này đang trỏ đến.
2. Tạo symlink trỏ đến một thư mục
Cách tạo symlink trỏ đến thư mục cũng tương tự như khi ta cần trỏ đến một file. Chỉ cần chỉ định tên thư mục trong tham số đầu tiên, và tên của symlink trong tham số thứ hai của lệnh ln trong Linux.
Giả sử ta cần tạo một symlink từ /mnt/my_drive/movies đến thư mục ~/my_movies thì có thể dùng lệnh như sau:
ln -s /mnt/my_drive/movies ~/my_movies
3. Ghi đè symlink
Nếu tạo một symlink đã có sẵn thì lệnh ln sẽ trả về lỗi như sau:
ln -s my_file.txt my_link.txt # Output: lỗi ln: failed to create symbolic link 'my_link.txt': File exists
Nếu muốn ghi đè một liên kết tượng trưng thì ta có thể thêm option -f (--force) vào lệnh:
ln -sf my_file.txt my_link.txt
4. Xóa symlink
Ta có thể dùng lệnh unlink hoặc rm trong Linux để xóa symlink.
Cú pháp lệnh unlink:
unlink symlink_cần_xóa
Hoặc lệnh rm:
rm symlink_cần_xóa
Cần lưu ý rằng khi xóa một symlink thì không được thêm dấu gạch chéo / vào cuối tên của liên kết, việc này áp dụng cho cả lệnh unlink lẫn rm. Ngoài ra, nếu xóa hay di chuyển file nguồn đến một vị trí khác thì file biểu tượng sẽ không còn tác dụng nữa và nên được xóa khỏi hệ thống.
Lời kết
Liên kết tượng trưng là một loại file đặc biệt vô cùng hữu ích mà người dùng Linux nên biết. Lệnh ln trong Linux cho phép ta tạo các loại liên kết này để trỏ đến file hay thư mục khác trên hệ thống. Nếu có thắc mắc gì về lệnh ln trong Linux thì bạn đọc hãy để lại comment ở bên dưới nhé!