Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Cách tạo symbolic link (symlink) – liên kết tượng trưng trong Linux

Hướng dẫn này giải thích symlink là gì, tại sao nên dùng, và cách tạo/sử dụng trong Linux.

Symlink (Symbolic Link) là tương đương "shortcut" (lối tắt) trong Windows – nhưng mạnh mẽ hơn: hoạt động ở cấp hệ thống tệp, trong suốt cho mọi ứng dụng, có thể trỏ đến tệp hoặc thư mục, thậm chí trên phân vùng/ổ đĩa khác.

Tạo symlink

# ln -s /var/www/html/application/configuration/images/config.php /var/www/html/image-config.php
  • ln: Lệnh tạo liên kết (link).
  • -s: Tạo symbolic link (mặc định không có -s là hard link – ít dùng hơn).
  • Tham số 1 (source): Đường dẫn đích thực tế (target).
  • Tham số 2 (destination link): Đường dẫn symlink bạn muốn tạo.

Cú pháp dễ nhớ: ln -s <nguồn_thực_tế> <liên_kết_mới>

Kiểm tra symlink

# ls -l /var/www/html/image-config.php
lrwxrwxrwx 1 calvin calvin 37 Apr 29 16:41 image-config.php -> /var/www/html/application/configuration/images/config.php
  • Ký tự l đầu tiên = symbolic link.
  • Mũi tên -> chỉ hướng đến target.

Symlink thư mục

# ln -s /var/www/html/project_v2 /var/www/html/current

Rất hữu ích cho triển khai (deployment): chỉ cần đổi symlink current trỏ sang version mới – rollback tức thì.

Các thao tác thường gặp

Thao tácLệnh
Xem target của symlinkreadlink -f symlink_name hoặc realpath symlink_name
Xóa symlink (không xóa target)rm symlink_name hoặc unlink symlink_name
Cập nhật symlink trỏ đích mớiln -sfn /new/target symlink_name (-f force, -n no-dereference)
Tìm symlink hỏng (broken)find /path -xtype l

Symlink vs Hard Link

Đặc điểmSymbolic LinkHard Link
Trỏ đếnĐường dẫn (tên tệp)Inode (dữ liệu vật lý)
Liên kết thư mục✅ Có❌ Không (trên hầu hết FS)
Cross filesystem✅ Có❌ Không
Target bị xóaLink hỏng (dangling)Dữ liệu vẫn tồn tại
ls -l hiển thịl... -> targetGiống tệp thường, link count > 1

Ứng dụng thực tế

  • Rút gọn đường dẫn dài cho script/cron.
  • Quản lý version ứng dụng (current → v1.2, v1.3...).
  • Chia sẻ thư mục cấu hình giữa user/container.
  • Tương thích ngược: link tên cũ trỏ sang tên mới.