Giới thiệu
Trong lab này, bạn sẽ tìm hiểu về lệnh ln
của Linux và các ứng dụng thực tế của nó để tạo liên kết cứng và liên kết mềm. Lab bao gồm mục đích của lệnh ln
, cách tạo liên kết cứng và cách tạo liên kết mềm. Bạn sẽ hiểu sự khác biệt giữa hai loại liên kết này và các trường hợp sử dụng của chúng. Lab cung cấp hướng dẫn từng bước và ví dụ để giúp bạn làm chủ lệnh ln
và khả năng quản lý tệp và thư mục của nó trong Linux.
Tìm hiểu Mục đích của Lệnh ln
Trong bước này, bạn sẽ tìm hiểu về mục đích của lệnh ln
trong Linux. Lệnh ln
được sử dụng để tạo các liên kết, là các tệp đặc biệt trỏ đến các tệp hoặc thư mục khác. Có hai loại liên kết: liên kết cứng và liên kết biểu tượng (mềm).
Liên kết cứng được tạo bằng lệnh ln
mà không có bất kỳ tùy chọn bổ sung nào. Liên kết cứng về cơ bản là bản sao của tệp gốc, nhưng chúng chia sẻ cùng một inode (siêu dữ liệu tệp) và vị trí lưu trữ vật lý. Điều này có nghĩa là các thay đổi được thực hiện đối với nội dung tệp sẽ được phản ánh trong tất cả các liên kết cứng.
Để tạo một liên kết cứng, hãy chạy lệnh sau:
ln original_file hard_link_name
Ví dụ đầu ra:
$ ln file1.txt file1_hardlink.txt
Liên kết biểu tượng, còn được gọi là liên kết mềm, được tạo bằng tùy chọn -s
với lệnh ln
. Liên kết biểu tượng là con trỏ đến tệp hoặc thư mục gốc và chúng chứa đường dẫn đến mục tiêu. Không giống như liên kết cứng, liên kết biểu tượng có thể trỏ đến các tệp hoặc thư mục trên các ranh giới hệ thống tệp.
Để tạo một liên kết biểu tượng, hãy chạy lệnh sau:
ln -s original_file symbolic_link_name
Ví dụ đầu ra:
$ ln -s file1.txt file1_symlink.txt
Sự khác biệt chính giữa liên kết cứng và liên kết biểu tượng là liên kết cứng được liên kết chặt chẽ với tệp gốc, trong khi liên kết biểu tượng linh hoạt hơn và có thể trỏ đến các tệp hoặc thư mục trên toàn hệ thống tệp.
Tạo Liên kết Cứng Sử dụng Lệnh ln
Trong bước này, bạn sẽ tìm hiểu cách tạo liên kết cứng bằng lệnh ln
.
Đầu tiên, hãy tạo một tệp mẫu mà chúng ta sẽ sử dụng để tạo liên kết cứng:
touch file1.txt
echo "This is the original file." > file1.txt
Bây giờ, hãy tạo một liên kết cứng đến file1.txt
bằng lệnh ln
:
ln file1.txt file1_hardlink.txt
Lệnh ln
mà không có bất kỳ tùy chọn nào sẽ tạo một liên kết cứng. Điều này có nghĩa là file1_hardlink.txt
và file1.txt
hiện chia sẻ cùng một inode (siêu dữ liệu tệp) và vị trí lưu trữ vật lý. Bất kỳ thay đổi nào được thực hiện đối với một tệp sẽ được phản ánh trong tệp kia.
Hãy xác minh rằng liên kết cứng đã được tạo chính xác:
ls -l file1.txt file1_hardlink.txt
Ví dụ đầu ra:
-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1.txt
-rw-r--r-- 2 labex labex 25 Apr 12 12:34 file1_hardlink.txt
Lưu ý rằng cả hai tệp đều có cùng số inode ("2" trong cột thứ hai), cho biết rằng chúng là liên kết cứng đến cùng một tệp.
Bây giờ, hãy thực hiện thay đổi đối với tệp gốc và xem nó ảnh hưởng đến liên kết cứng như thế nào:
echo "This is an updated file." > file1.txt
cat file1.txt file1_hardlink.txt
Ví dụ đầu ra:
This is an updated file.
This is an updated file.
Như bạn có thể thấy, những thay đổi được thực hiện đối với file1.txt
được phản ánh trong liên kết cứng file1_hardlink.txt
.
Liên kết cứng rất hữu ích khi bạn muốn tạo nhiều tham chiếu đến cùng một tệp, mà không tốn thêm dung lượng lưu trữ. Tuy nhiên, hãy nhớ rằng liên kết cứng không thể trải rộng trên các ranh giới hệ thống tệp và chúng không thể được tạo cho các thư mục.
Tạo Liên kết Biểu tượng Sử dụng Lệnh ln
Trong bước này, bạn sẽ tìm hiểu cách tạo liên kết biểu tượng (mềm) bằng lệnh ln
.
Đầu tiên, hãy tạo một tệp mẫu khác mà chúng ta sẽ sử dụng để tạo liên kết biểu tượng:
touch file2.txt
echo "This is the second file." > file2.txt
Bây giờ, hãy tạo một liên kết biểu tượng đến file2.txt
bằng lệnh ln
với tùy chọn -s
:
ln -s file2.txt file2_symlink.txt
Tùy chọn -s
cho lệnh ln
biết để tạo một liên kết biểu tượng thay vì một liên kết cứng.
Hãy xác minh rằng liên kết biểu tượng đã được tạo chính xác:
ls -l file2.txt file2_symlink.txt
Ví dụ đầu ra:
-rw-r--r-- 1 labex labex 23 Apr 12 12:34 file2.txt
lrwxrwxrwx 1 labex labex 8 Apr 12 12:34 file2_symlink.txt -> file2.txt
Lưu ý rằng liên kết biểu tượng file2_symlink.txt
có chữ "l" ở đầu các quyền, cho biết rằng đó là một liên kết biểu tượng. Đầu ra cũng cho thấy rằng file2_symlink.txt
trỏ đến file2.txt
.
Không giống như liên kết cứng, liên kết biểu tượng có thể trỏ đến các tệp hoặc thư mục trên các ranh giới hệ thống tệp. Hãy chứng minh điều này bằng cách tạo một liên kết biểu tượng đến một thư mục:
mkdir dir1
ln -s dir1 dir1_symlink
ls -l dir1 dir1_symlink
Ví dụ đầu ra:
drwxr-xr-x 2 labex labex 4096 Apr 12 12:34 dir1
lrwxrwxrwx 1 labex labex 5 Apr 12 12:34 dir1_symlink -> dir1
Như bạn có thể thấy, dir1_symlink
là một liên kết biểu tượng trỏ đến thư mục dir1
.
Liên kết biểu tượng linh hoạt hơn liên kết cứng, vì chúng có thể trỏ đến các tệp hoặc thư mục trên các ranh giới hệ thống tệp. Tuy nhiên, chúng cũng có thể dễ vỡ hơn, vì liên kết sẽ bị hỏng nếu tệp hoặc thư mục đích bị di chuyển hoặc xóa.
Tóm tắt
Trong lab này, bạn đã tìm hiểu về mục đích của lệnh ln
trong Linux, được sử dụng để tạo các liên kết trỏ đến các tệp hoặc thư mục khác. Bạn đã khám phá hai loại liên kết: liên kết cứng và liên kết biểu tượng (mềm). Liên kết cứng về cơ bản là bản sao của tệp gốc chia sẻ cùng một inode và vị trí lưu trữ vật lý, trong khi liên kết biểu tượng là con trỏ đến tệp hoặc thư mục gốc và có thể vượt qua các ranh giới hệ thống tệp. Bạn cũng đã học cách tạo liên kết cứng và liên kết biểu tượng bằng lệnh ln
.