Khi một file hoặc folder được tạo ra trong Linux nó sẽ tạo ra 1 số cho file
hoặc folder đó. Số đó gọi là INODE và đây là dãy số duy nhất trên hệ thống của
Linux nhằm mục đích quản lý.
Ví dụ:
khanhvc@ubutu:~/projects$ ll -i
total 12
2621505 drwxrwxr-x 3 khanhvc khanhvc 4096 Thg 9 23 14:05 ./
2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9 23 14:05 ../
2621869 -rw-rw-r-- 1
khanhvc khanhvc 0 Thg 9 23 14:05 file_name.txt
2755955
drwxrwxr-x 2 khanhvc khanhvc
4096 Thg 9 23 14:05
folder_name/
khanhvc@ubutu:~/projects$
1. Hard Links
Ví dụ: tạo hard links có tên hardlink.txt trỏ về file_name.txt
khanhvc@ubutu:~/projects$ ln file_name.txt hardlink.txt
khanhvc@ubutu:~/projects$ ll -i
total 12
2621505 drwxrwxr-x 3 khanhvc khanhvc 4096 Thg 9 23 14:17 ./
2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9 23 14:05 ../
2621869 -rw-rw-r-- 2
khanhvc khanhvc 0 Thg 9 23 14:05 file_name.txt
2755955 drwxrwxr-x 2 khanhvc khanhvc 4096 Thg 9 23 14:05
folder_name/
2621869 -rw-rw-r-- 2
khanhvc khanhvc 0 Thg 9 23 14:05 hardlink.txt
khanhvc@ubutu:~/projects$
Chúng ta thấy file hardlink.txt và file_name.txt có inode giống nhau, có nghĩa
hard link sẽ tạo link trỏ về link gốc của tập tin, hay nói cách khác
hardlink.txt và file_name.txt có cùng chung một dữ liệu.
Nếu chúng ta thêm dữ liệu vào file hardlink.txt, cũng đồng nghĩa dữ liệu đó được thêm vào file_name.txt
khanhvc@ubutu:~/projects$
echo "thêm nội dung vào hardlink.txt" >> hardlink.txt
khanhvc@ubutu:~/projects$ cat file_name.txt
thêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$ cat hardlink.txt
thêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$
Nội dung 2 file hoàn toàn giống nhau. Nếu chung ta xóa 1 trong 2 file này vẫn
không ảnh gì đến dữ liệu của file còn lại
khanhvc@ubutu:~/projects$ rm file_name.txt
khanhvc@ubutu:~/projects$ ls -i
2755955 folder_name 2621869
hardlink.txt
khanhvc@ubutu:~/projects$
Thực hiện xóa file file_name.txt, kiểm tra nội dung file hardlink.txt
khanhvc@ubutu:~/projects$ cat hardlink.txt
thêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$
2. Symbolic Links: Tạo ra 1 link để trỏ đến file hoặc thưc mục gọi target. Nó không chứa bản sao copy của target mà nó chỉ link đến file hay thư mục, nó tương tự như shortcut trong windows. Vì là shortcut nên khi symbolic links bị xóa sẽ không ảnh hưởng đến nội của file hay thư mục, ngược lại nếu target bị xóa hay đổi tên symblic link sẽ không cập nhật, không hoạt động như link
Ví dụ:
Tạo symbolic link có tên softlink.txt trỏ về file_name.txt, và softlink_folder.txt trỏ về folder_name
khanhvc@ubutu:~/projects$ ln -s file_name.txt softlink.txt
khanhvc@ubutu:~/projects$ ln -s folder_name softlink_folder.txt
khanhvc@ubutu:~/projects$
khanhvc@ubutu:~/projects$ ls -i
2621869 file_name.txt 2625309 softlink_folder.txt
2755955 folder_name 2621566 softlink.txt
khanhvc@ubutu:~/projects$
Các số/inode của symbolic link và target là khác nhau
khanhvc@ubutu:~/projects$ ll -i
total 16
2621505 drwxrwxr-x 3 khanhvc khanhvc 4096 Thg 9 23 14:42 ./
2621442 drwxr-xr-x 27 khanhvc khanhvc 4096 Thg 9 23 14:05 ../
2621869 -rw-rw-r-- 1 khanhvc khanhvc 35 Thg 9 23 14:24 file_name.txt
2755955 drwxrwxr-x 2 khanhvc khanhvc 4096 Thg 9 23 14:05 folder_name/
2625309 lrwxrwxrwx 1 khanhvc khanhvc 11 Thg 9 23 14:42 softlink_folder.txt -> folder_name/
2621566 lrwxrwxrwx 1 khanhvc khanhvc 13 Thg 9 23 14:42 softlink.txt -> file_name.txt
khanhvc@ubutu:~/projects$
Thuộc tính của symbolic link là l
Xong!