I. Symbolic link
Symbolic link (liên kết tượng trưng) hay được gọi tắt là Symlink hay Softlink, có thể hiểu đơn giản là đường dẫn trỏ đến vị trí của file nào đó trong hệ thống máy tính. Bạn có thể tạo nhiều symbolic link đặt ở nhiều nơi khác nhau nhưng vẫn trỏ về đúng 1 file gốc. Vì vậy, gia tăng tính tiện lợi cho việc tìm kiếm file trong một dòng lệnh.
Trong bài hướng dẫn này, chúng tôi sẽ chỉ bạn cách tạo symbolic links, ngoài ra bạn còn biết Symbolic Links là gì và hiểu tường tận về nó.
II. Các loại liên kết
Có hai loại liên kết trong hệ thống Linux:
- Liên kết cứng: Bạn có thể coi liên kết cứng là tên bổ sung cho tệp hiện có. Liên kết cứng liên kết hai hoặc nhiều tên tệp có cùng một inode . Bạn chỉ có thể tạo liên kết cứng cho các thư mục và file nằm trên cùng file system hoặc phân vùng. Một file có thể có một hoặc nhiều liên kết cứng.
- Liên kết mềm: Liên kết tượng trưng, còn được gọi là liên kết mềm, là một loại tệp hoạt động như một tham chiếu đến file hoặc thư mục khác trong file system. Nó có thể so sánh với một phím tắt trong hệ điều hành Windows, vì nó cho phép bạn truy cập file hoặc thư mục từ một vị trí khác mà không cần tạo bản sao của nó. Liên kết tượng trưng rất hữu ích cho việc tổ chức các file cũng như giúp truy cập các file hoặc thư mục được sử dụng thường xuyên dễ dàng hơn. Không giống như liên kết cứng, liên kết tượng trưng có thể trỏ đến một file hoặc thư mục trên một phân vùng hoặc file system khác.
III. Làm thế nào để tạo Symbolic Link trong Linux?
Để tạo Symbolic link trong Linux, chúng ta sử dụng lệnh ln để tạo links đến file hoặc thư mục trong Linux.
- Tạo Symbolic link cho file
- Để tạo một symbolic link cho một file, hãy mở terminal và nhập lệnh bên dưới:
ln -s [target] [symlink]
Trong đó:- -s – để tạo symbolic link, theo mặc định lệnh ln tạo liên kết cứng.
- [target] – tên của file gốc hoặc nơi bạn muốn tạo file link tới.
- [symlink] – tên của file symbolic link.
- Ví dụ bên dưới tạo một symbolic link (link-file.txt) trỏ đến file gốc (target-file.txt) nằm trong thư mục test.
ln -s test/target-file.txt link-file.txt
Lệnh trên không hiện output, nhưng lệnh ls hiển thị link-file.txt đã được tạo:
- Chúng ta thêm -l vào lệnh ls để xem thuộc tính của link-file.txt:
ls -l link-file.txt
Chữ l ở đầu của cột phân quyền cho thấy file đó là 1 symlink. Output cũng hiển thi đường dẫn đến file gốc.
- Để tạo một symbolic link cho một file, hãy mở terminal và nhập lệnh bên dưới:
- Tạo Symbolic link cho folder
- Để tạo một symbolic link cho một folder, sử dụng lệnh sau:
ln -s [target-directory] [symlink]
- Ví dụ dưới đây tạo một symbolic link có tên test-link trong thư mục home (~/).
ln -s /etc/ssh ~/test-link
- Lệnh ls hiển thị symlink mới được tạo trong thư mục home.
- Output ls -l hiển thị ký tự l ở cột phân quyền và đường dẫn đến thư mục gốc.
- Nội dung của thư mục test-link tương ứng với nội dung của thư mục ssh.
- Để tạo một symbolic link cho một folder, sử dụng lệnh sau:
IV. Ghi đè Symbolic link
- Khi tạo 1 symbolic link, bạn có thể nhận được thông báo lỗi sau:
ln: failed to create symbolic link '[filename]': File exists
- Thông báo lỗi có nghĩa là đã có 1 file cùng tên. Để hệ thống ghi đè lên, sử dụng -f:
ln -sf [target] [destination]
- Chú ý: Sử dụng tùy chọn -f sẽ xóa vĩnh viễn file hiện có.
V. Tìm các liên kết tượng trưng bị hỏng
- Symbolic link sẽ không sử dụng được nếu tệp gốc bị di chuyển, bị xóa, hoặc không khả dụng (vd: server offline). Tuy nhiên, hệ thông không tự động loại bỏ các symbolic link bị hỏng.
- Để tìm kiếm và định vị các symbolic links không hoạt động, hãy sử dụng lệnh find sau:
find [directory] -type l ! -exec test -e {} ; -print
- Thay thế [directory] bằng đường dẫn đến thư mục mà bạn muốn tìm các symlink bị hỏng. Ví dụ: sử dụng ký hiệu (~) để tìm kiếm thư mục home:
find ~ -type l ! -exec test -e {} ; -print
VI. Xóa Symbolic links
- Nếu một symlink bị hỏng hoặc bạn không cần nó nữa, hãy xóa nó bằng lệnh unlink:
unlink [symlink]
- Thay thế [symlink] bằng đường dẫn đến liên kết. Ngoài ra, hãy sử dụng lệnh rm, như bạn làm với bất kỳ tệp nào khác:
rm [symlink]
- Cả hai lệnh đều không có output nếu thao tác thành công.
Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách tạo Symbolic link trong linux. Chúc Quý khách thành công.