Tên tệp được lưu trữ trên một hệ thống tập tin ở đâu?


44

Tên tệp được lưu trữ trên một hệ thống tập tin ở đâu?

Nó không phải là inode hoặc với nội dung tệp thực tế vì chúng ta có liên kết cứng mà hai tên tệp có thể trỏ đến cùng một nút.


4
Nói đúng ra, điều đó phụ thuộc hoàn toàn vào đó hệ thống tập tin bạn đang nói về. Không phải tất cả trong số họ có inodes (hoặc thậm chí thư mục).
Michael Borgwardt

NTFS hoặc FAT12 / 16/32 và nhiều hệ thống tập tin khác không có bất kỳ inode nào
phuclv

Nhiều tệp có nhiều hơn một tên trong nhiều thư mục. Tất cả các tệp của thư mục loại có ít nhất 2 tên, một trong số chúng nằm .trong chính chúng.
Stéphane Chazelas

@ LưuViênPhúc, ntfs không .. nó chỉ gọi nó là bản ghi MFT, nhưng nó gần như là một nút.
psusi

Câu trả lời:


61

Tôi đã không tìm thấy một bản sao phù hợp để đây là một câu trả lời cho câu hỏi của bạn.

Tên tệp và thư mục

đoạn trích

Tên tệp và hàm ý thư mục:

  • inodes không chứa tên tệp, chỉ siêu dữ liệu tệp khác.
  • Các thư mục Unix là danh sách các cấu trúc liên kết, mỗi cấu trúc chứa một tên tệp và một số inode.
  • Trình điều khiển hệ thống tệp phải tìm kiếm một thư mục tìm kiếm một tên tệp cụ thể và sau đó chuyển đổi tên tệp thành số inode tương ứng chính xác.

Nguồn: trang Wikipedia trên Inode

Vì vậy, tên của tệp được lưu trữ trong cấu trúc thông tin của thư mục. Ví dụ:

                         ss của fs

Cấu trúc thư mục

đoạn trích

Trong hệ thống tệp EXT2, thư mục là các tệp đặc biệt được sử dụng để tạo và giữ đường dẫn truy cập đến các tệp trong hệ thống tệp. Hình 9.3 cho thấy cách bố trí của một mục nhập thư mục trong bộ nhớ.

Tệp thư mục là danh sách các mục nhập thư mục, mỗi mục chứa thông tin sau:

  • inode - Inode cho mục nhập thư mục này. Đây là một chỉ mục vào mảng các nút được giữ trong Bảng Inode của Nhóm Khối. Trong hình 9.3, mục nhập thư mục của tệp được gọi là tệp có tham chiếu đến số inode i1,
  • Tên độ dài - Độ dài của mục nhập thư mục này theo byte,
  • Tên - Tên của mục nhập thư mục này.

Hai mục đầu tiên cho mỗi thư mục luôn là tiêu chuẩn ...các mục có nghĩa tương ứng là "thư mục này" và "thư mục mẹ".

Dưới đây là các tham chiếu Hình 9.3 ở trên:

                 ss # 2

Nguồn: Dự án Tài liệu Linux: Hệ thống tập tin

Người giới thiệu


9

Tên tệp được lưu trữ trong thư mục tương ứng ("tệp thư mục"). Mục này trỏ đến một nút.


1
Tôi không thể thấy các mục tiêu symlink có thể kết thúc như thế nào trong các mục trong thư mục. Mục tiêu symlink có thể được tìm thấy trong inode của symlink, nhưng không phải trong (bất kỳ) mục nhập thư mục mà symlink được liên kết đến, điều đó sẽ không có ý nghĩa.
Stéphane Chazelas

@ StéphaneChazelas, bản thân symlink chỉ đơn giản chứa một tên khác nên được mở thay thế. Việc tra cứu tên bắt đầu lại trên tên mới, mà (nếu nó tồn tại) là một mục nhập thư mục ở đâu đó.
psusi

1

Tên tệp được lưu trữ trong cấu trúc dữ liệu "thư mục" có tên tệp "(chuỗi)" và "(int) inode" tương ứng. thư mục chịu trách nhiệm ánh xạ tên tệp -> inode. và trong ode chịu trách nhiệm ánh xạ inode -> sector trên đĩa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.