2.2 Sử dụng các câu lệnh
9
Và cuối cùng vâng rất may là cuối cùng, tùy chọn -i của ls sử dụng để hiển thị số inode
của các đối tượng
trong hệ thống tập tin:
$ ls -i /usr
685 bin
917 include
9352 local
920 src
915 doc
918 info
706 sbin
12522 X11R6
916 games
919 lib
708 share
2.2.5
Inode là gì?
Mọi đối tượng trên một hệ thống tập tin được xác định bởi một chỉ mục (index) duy nhất,
gọi là chỉ mục inode. Cái này nghe có vẻ tầm thường, nhưng rất cần am hiểu inode để có
thể nắm được thực chất của nhiều thao tác với hệ thống tập tin. Trong ví dụ này chúng ta sẽ
xem xét các liên kết . và .. mà xuất hiện trong mọi thư mục. Để biết thực chất thư mục .. là
gì, đầu tiên chúng ta xem chỉ mục inode của /usr/local:
$ ls -id /usr/local
9352 /usr/local
Thư mục /usr/local có chỉ mục inode là 9352. Còn bây giờ, hãy xem chỉ mục inode của
mbox/usr/local/bin/..:
$ ls -id /usr/local/bin/..
9352 /usr/local/bin/..
Ối! Cũng là 9352.
Như bạn thấy đấy, /usr/local/bin/.. có cùng chỉ mục inode với /usr/local! Như vậy chúng
ta hiểu thực chất .. cũng là một mục trên hệ thống tập tin mà có cùng inode với thư mục mẹ.
Đây là một khám phá gây sốc! Trước đây, chúng ta cho rằng /usr/local là thư mục. Bây giờ,
chúng ta khám phá ra inode 9352 trên thực tế mới là thư mục, và tìm thấy hai mục (còn gọi
là "liên kết") chỉ tới inode này. Đó là /usr/local và /usr/local/bin/.., chúng đều là liên kết tới
inode 9352. Mặc dù inode 9352 chỉ tồn tại ở một nơi trên đĩa, nhưng cho phép nhiều mục
có thể liên kết tới nó. Inode 9352 là đối tượng thật sự nằm trên đĩa.
Trong khi thực hành, nếu muốn chúng ta có thể thấy tổng số lần mà inode 9352 được
liên kết đến, dùng câu lệnh ls -dl:
$ ls -dl /usr/local
drwxrwsr-x
11 root staff
272 2004-06-05 04:06 /usr/local
Chúng tôi muốn bạn chú ý vào cột thứ hai từ bên trái. Vâng với những cái đầu nhanh
nhạy như của các bạn, thì thấy rằng thư mục /usr/local (hay nói đúng hơn là inode 9352)
được liên kết đến mười một lần. Có thật sự nhiều như vậy không? Để đánh tan mọi hoài
nghi dưới đây là các mục khác nhau, liên kết đến inode này trên hệ điều hành của tôi:
15
object