Liên kết vật lý

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 37 - 39)

Hệ thống tệp

4.4.2Liên kết vật lý

Có nhiều trường hợp một tệp được sử dụng trong các bối cảnh khác nhau, cần sử dụng 2 tên tuyệt đối khác nhau để truy cập vào tệp. Trường hợp này chỉ cần tạo ra một bản ghi trong thư mục mới, trong đó chứa inode của tệp cũ. Bản ghi này được gọi là một liên kết vật lý đến tệp, được tạo ra bởi câu lệnh ln

[trunghq@localhost temp1]$ ln t1 ../t1-link [trunghq@localhost temp1]$ ls -la t1

-rw-rw-r-- 2 trunghq trunghq 0 Apr 18 07:17 t1 [trunghq@localhost temp1]$ ls -la ../t

t1-link temp1

[trunghq@localhost temp1]$ ls -la ../t1-link

-rw-rw-r-- 2 trunghq trunghq 0 Apr 18 07:17 ../t1-link [trunghq@localhost temp1]$ ls -lia t1

113656 -rw-rw-r-- 2 trunghq trunghq 0 Apr 18 07:17 t1 [trunghq@localhost temp1]$ ls -lia ../t1-link

113656 -rw-rw-r-- 2 trunghq trunghq 0 Apr 18 07:17 ../t1-link

Câu lệnh ls -lia còn cho biết số liên kết vật lý trỏ vào inode đang xem xét.

Sau khi tạo ra, liên kết vật lý và tên tệp ban đầu có ý nghĩa hoàn toàn như nhau, không phân biệt được đâu là liên kết và đâu là tệp liên kết. Mọi thay đổi trên liên kết đều có tác động đến tệp.

[trunghq@localhost temp1]$ echo "Thi nghiem lan 1" >t1 [trunghq@localhost temp1]$ cat ../t1-link

Thi nghiem lan 1

[trunghq@localhost temp1]$ echo "Thi nghiem lan 2" > ../t1-link [trunghq@localhost temp1]$ cat t1

Khi một trong các liên kết được xóa đi, hệ thống chỉ xóa bản ghi trong thư mục tương ứng. Trường hợp không còn bản ghi nào trỏ vào inode, inode được đánh dấu là đã bị xóa, nội dung của tệp sẽ bị ghi đè khi hệ thống cần không gian ổ đia.

[trunghq@localhost temp1]$ ln t1 ../t1-link-02 [trunghq@localhost temp1]$ ln t1 ../t1-link-03 [trunghq@localhost temp1]$ ls -lia t1

113656 -rw-rw-r-- 4 trunghq trunghq 17 Apr 18 23:44 t1 [trunghq@localhost temp1]$ rm ../t1-link-01

rm: cannot lstat ‘../t1-link-01’: No such file or directory [trunghq@localhost temp1]$ rm ../t1-link-02

[trunghq@localhost temp1]$ ls -lia t1

113656 -rw-rw-r-- 3 trunghq trunghq 17 Apr 18 23:44 t1 [trunghq@localhost temp1]$ rm ../t1-link-03

[trunghq@localhost temp1]$ ls -lia t1

113656 -rw-rw-r-- 2 trunghq trunghq 17 Apr 18 23:44 t1 [trunghq@localhost temp1]$ rm ../t1-link

[trunghq@localhost temp1]$ ls -lia t1

113656 -rw-rw-r-- 1 trunghq trunghq 17 Apr 18 23:44 t1 [trunghq@localhost temp1]$ rm t1

[trunghq@localhost temp1]$ ls -lia t1 ls: t1: No such file or directory

Trong Linux, dùng câu lệnh ln không tạo được liên kết cứng đến các thư mục. Tuy nhiên mặc định khi tạo ra một thư mục, luôn luôn có 2 thư mục con được tạo ra một cách mặc định là . và .. Như vậy một thư mục tối thiểu phải có 2 liên kết cứng trỏ vào, cứ thêm 01 thư mục con sẽ có thêm 01 liên kết cứng nữa

[trunghq@localhost temp]$ ls -lia temp* total 8

113655 drwxrwxr-x 2 trunghq trunghq 4096 Apr 19 00:17 . 113661 drwxrwxr-x 3 trunghq trunghq 4096 Apr 19 00:16 .. [trunghq@localhost temp]$ ls -lia temp1

total 8

113655 drwxrwxr-x 2 trunghq trunghq 4096 Apr 19 00:17 . 113661 drwxrwxr-x 3 trunghq trunghq 4096 Apr 19 00:16 ..

[trunghq@localhost temp]$ cd temp1/ [trunghq@localhost temp1]$ ls -la total 8

drwxrwxr-x 2 trunghq trunghq 4096 Apr 19 00:17 . drwxrwxr-x 3 trunghq trunghq 4096 Apr 19 00:16 .. [trunghq@localhost temp1]$ mkdir t1 (adsbygoogle = window.adsbygoogle || []).push({});

[trunghq@localhost temp1]$ ls -la total 12

drwxrwxr-x 3 trunghq trunghq 4096 Apr 19 00:18 . drwxrwxr-x 3 trunghq trunghq 4096 Apr 19 00:16 .. drwxrwxr-x 2 trunghq trunghq 4096 Apr 19 00:18 t1

Việc sử dụng liên kết cứng có thể tạo ra các bối cảnh, trong đó nội dung của tệp có thể bị thay đổi mà NSD không hề hay biết. Chính vì vậy liên kết cứng không được khuyến khích sử dụng.

Một phần của tài liệu nhập môn linux và phần mềm mã nguồn mở (Trang 37 - 39)