Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách quản lý Symlink trong Linux

Cách quản lý Symlink trong Linux

Symlink là file liên kết trực tiếp đến file khác. Trong hệ thống Linux, symlink đóng vai trò phím tắt.

Thuật ngữ "symlink" là từ ghép của "symbolic" (tượng trưng) và "link" (liên kết), làm nổi bật tiện ích của file như tham chiếu tượng trưng đến thứ khác.

Các "hard link" (liên kết cứng) hoạt động hơn như bản sao của file tham chiếu hơn là liên kết thực. "Soft link" (liên kết mềm) hoặc symbolic link đơn giản chỉ trỏ đến đích. Xóa các liên kết này không làm gì đến file chúng trỏ tới, và bao nhiêu symlink cần thiết đều có thể tạo cho tiện lợi. Điều này làm cho chúng tuyệt vời để trỏ đến file qua hệ thống file và phân vùng.

Các trường hợp dùng Symlink

Thay đổi cấu trúc cơ bản của hệ thống file cho một ứng dụng chạy hiệu quả hơn sẽ là việc vất vả. Thay vào đó, symlink thường dùng để đơn giản hóa và tạo hệ thống file nhân tạo cho chương trình tham chiếu mà không ảnh hưởng vị trí file gốc.

Việc dùng symlink làm cho việc thích ứng các chương trình khác dễ dàng, nhưng cũng làm phức tạp phân tích hệ thống file.

Vấn đề với Symlink

Khi symlink hoạt động đúng, chúng chỉ ra đường dẫn rõ ràng đến file thực sự tồn tại. Symbolic link thất bại, tuy nhiên, trỏ đến file không tồn tại hoặc đã xóa. Các symbolic link này tạo sự nhầm lẫn cho cả người dùng và chương trình phụ thuộc vào độ chính xác của chúng.

Nếu file được symlink trỏ tới bị thay thế, liên kết vẫn trỏ đến file mới, bỏ qua nội dung hoàn toàn. Chức năng "tin mịt" này làm cho việc nối chuỗi liên kết (link chaining) và liên kết tương đối (relative links) trở nên khả thi.

Nối chuỗi liên kết, đặc biệt, có thể dẫn đến liên kết循环 (cyclic links - vòng lặp liên kết vô hạn) nếu liên kết tham chiếu đến liên kết thứ hai, ngược lại trỏ về cái đầu.

Những vấn đề này không nhất thiết do can thiệp con người; tiêu chuẩn gắn thiết bị không tối ưu và quy trình tự động nhất định có thể tạo ra "dead link" (liên kết chết) đáng buồn. Chính tại đây kỹ thuật quản lý phát huy tác dụng.

Quản lý Symlink

Trong hệ thống Linux có nhiều tiện ích sẵn có để xử lý symlink. Một công cụ mặc định trong coreutils là ln, giúp tạo liên kết từ terminal.

Để quản lý đầy đủ symbolic link, bạn cần tìm và phân tích chúng nhanh. Một tùy chọn dòng lệnh đơn giản đáng xem xét là symlinks.

Mặc dù một số distro như Fedora có sẵn công cụ này, các distro khác như Ubuntu không. Để cài "Symlinks" trong Ubuntu, mở terminal và nhập:

sudo apt install symlinks
Cách quản lý Symlink trong Linux

Tạo Symlink

Tạo symlink từ terminal dễ dàng trên Linux. Nhập mã sau, thay "original-file.txt" bằng tên và phần mở rộng file đích, sau đó đổi "linkname" thành cái bạn muốn.

ln -s original-file.txt linkname
Cách quản lý Symlink trong Linux

Tiện ích ln dùng để tạo liên kết, và sẽ làm vậy khi chạy. Cờ -s trong lệnh trên làm liên kết trở thành symbolic.

Symbolic link tương đối cũng có thể tạo bằng cách thêm -r vào cùng lệnh:

ln -rs original-file.txt linkname
Cách quản lý Symlink trong Linux

Liên kết tương đối vẫn hoạt động bất kể thay đổi điểm gắn (mount points).

Tìm Symlink

Tiện ích Symlinks nhắc đến cung cấp cách đơn giản tìm symbolic link trong thư mục. Lệnh là: (Thay "directory-name" bằng đường dẫn đầy đủ thư mục bạn muốn tìm.)

symlinks -v directory-name
Cách quản lý Symlink trong Linux

Thêm r vào lệnh nói cho Symlinks kiểm tra đệ quy file trong thư mục chỉ định. Trông như sau:

symlinks -rv directory-name
Cách quản lý Symlink trong Linux

Cẩn thận dùng đệ quy nếu lo vấn đề nảy sinh với cyclic link. Cyclic link là liên kết cuối cùng lặp lại vô tận về chính nó; chúng có thể làm treo tiện ích Symlinks khi cố gắng đệ quy vào cấu trúc vô hạn.

Phiên bản không đệ quy của lệnh trên chỉ tiết lộ cyclic link hiện có là "dangling" (treo), hoặc nói cách khác, bị hỏng. Chính khả năng phân tích của công cụ Symlinks cho phép nó thực sự sửa các liên kết hỏng.

Sửa Symlink

Sửa symbolic link trong thư mục cho trước đơn giản với Symlinks. Lệnh dùng:

symlinks -cds directory-name
Cách quản lý Symlink trong Linux

Lệnh trên làm nhiều việc cùng lúc. Nó chuyển bất kỳ liên kết tuyệt đối nào tìm thấy thành liên kết tương đối, xóa dangling link và rút gọn "lengthy" link (liên kết nhiều "../" trong đường dẫn).

Nếu bạn không chắc kết quả tiềm năng của chạy thao tác này, bạn có thể test xem -c đơn độc làm gì mà không thay đổi bằng lệnh:

symlinks -t directory-name
Cách quản lý Symlink trong Linux

Hy vọng bạn hiểu rõ hơn symbolic link là gì và cách quản lý chúng hiệu quả. Hãy xem thêm khả năng của tiện ích Symlinks để chạy thao tác cụ thể hơn trên hệ thống file.