Nhiều thực thể theo kiểu * nix (và các hệ điều hành khác) được coi là tệp hoặc có khía cạnh giống như tệp xác định, mặc dù chúng không nhất thiết phải là chuỗi byte được lưu trữ trong hệ thống tệp. Chính xác cách thức các thư mục được triển khai phụ thuộc vào loại hệ thống tệp, nhưng nhìn chung những gì chúng chứa, được coi là một danh sách, là một chuỗi các byte được lưu trữ, vì vậy theo nghĩa đó chúng không phải là đặc biệt.
Một cách để xác định "tập tin" là gì trong ngữ cảnh * nix là nó là một cái gì đó có mô tả tệp được liên kết với nó. Theo bài viết trên wikipedia, một mô tả tập tin
là một chỉ báo trừu tượng được sử dụng để truy cập vào tệp hoặc tài nguyên đầu vào / đầu ra khác , chẳng hạn như kết nối đường ống hoặc mạng ...
Nói cách khác, chúng đề cập đến các loại tài nguyên khác nhau từ / đến đó một chuỗi byte có thể được đọc / ghi, mặc dù nguồn / đích của chuỗi đó là không xác định. Nói cách khác, "nơi" của tài nguyên có thể là bất cứ điều gì. Những gì định nghĩa nó là một ống dẫn thông tin. Đây là một phần lý do tại sao đôi khi người ta nói rằng trong unix "mọi thứ là một tập tin". Bạn không nên thực hiện điều đó hoàn toàn theo nghĩa đen, nhưng nó đáng được xem xét nghiêm túc. Trong trường hợp của một thư mục, thông tin này liên quan đến những gì trong thư mục và ở mức độ thực thi thấp hơn, làm thế nào để tìm thấy nó trong hệ thống tập tin.
Các thư mục là loại đặc biệt theo nghĩa này bởi vì trong mã C gốc, chúng không được liên kết rõ ràng với một mô tả tệp; API POSIX sử dụng một loại xử lý luồng đặc biệt , DIR*
. Tuy nhiên, loại này trong thực tế có một mô tả cơ bản có thể được lấy ra . Các bộ mô tả được quản lý bởi kernel và truy cập chúng luôn liên quan đến các cuộc gọi hệ thống, do đó, một khía cạnh khác của mô tả là nó là một ống dẫn được điều khiển bởi kernel OS. Chúng có các số duy nhất (trên mỗi quy trình) bắt đầu bằng 0, thường là mô tả cho luồng đầu vào tiêu chuẩn .