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.txtkhanhvc@ubutu:~/projects$ ll -itotal 122621505 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.txt2755955 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.txtkhanhvc@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.txtkhanhvc@ubutu:~/projects$ cat file_name.txtthêm nội dung vào hardlink.txt
khanhvc@ubutu:~/projects$ cat hardlink.txtthêm nội dung vào hardlink.txtkhanhvc@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.txtkhanhvc@ubutu:~/projects$ ls -i2755955 folder_name 2621869 hardlink.txtkhanhvc@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.txtthêm nội dung vào hardlink.txtkhanhvc@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.txtkhanhvc@ubutu:~/projects$ ln -s folder_name softlink_folder.txtkhanhvc@ubutu:~/projects$
khanhvc@ubutu:~/projects$ ls -i2621869 file_name.txt 2625309 softlink_folder.txt2755955 folder_name 2621566 softlink.txtkhanhvc@ubutu:~/projects$
Các số/inode của symbolic link và target là khác nhau
khanhvc@ubutu:~/projects$ ll -itotal 162621505 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.txt2755955 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.txtkhanhvc@ubutu:~/projects$
Thuộc tính của symbolic link là l
No comments:
Post a Comment