Tất cả bốn /dev/fd/0
, /dev/stdin
, /proc/self/fd/0
và /dev/pts/2
là tên tập tin, cũng như /////dev/../dev/fd//0
, /bin/sh
, /etc/fstab
, /fioejfoeijf
, vv Tất cả nhưng điều đó ví dụ cuối cùng có thể sẽ là tên của một tập tin hiện có trên máy của bạn. Tên tệp là một chuỗi có thể chỉ định một tệp trên hệ thống tệp của bạn; trong Linux, bất kỳ chuỗi nào không chứa byte rỗng và dài tối đa 4096 byte là tên tệp hợp lệ. Nhiều người trong số những cái tên này là tương đương, ví dụ như /bin/sh
là tương đương với ///bin/sh
, /bin/../bin/sh
(giả sử /bin
là một thư mục hiện có), vv Tất cả những ví dụ tôi đã đưa cho đến nay là tên tập tin tuyệt đối; cũng có tên tệp tương đối, không bắt đầu bằng a /
và ý nghĩa của nó phụ thuộc vào thư mục hiện tại.
Thuật ngữ xung quanh tên tệp không phổ biến; đôi khi tên tập tin của Nhật Bản có nghĩa là một đường dẫn đầy đủ đến một tập tin và đôi khi nó có nghĩa là tên của một mục nhập thư mục. Thuật ngữ POSIX là thành phần tên tập tin tên lửa hoặc thành phần tên lửa tên là tên của một mục nhập thư mục và tên đường dẫn tên cho một đường dẫn đầy đủ.
Một bộ mô tả tệp chỉ định một tệp mở trong một quy trình cụ thể. Nhân duy trì một bảng mô tả tập tin cho mỗi quá trình. Mỗi mục trong bảng mô tả tệp cho biết phải làm gì nếu quy trình yêu cầu đọc, viết và các thao tác khác trên bộ mô tả tệp.
Bộ mô tả tệp có thể tương ứng với một tệp và có tên liên quan, nhưng không phải tất cả chúng đều được. Đối với những người làm như vậy, tệp có thể là một tệp thông thường, một thư mục, một tệp thiết bị hoặc một đường ống có tên (còn được gọi là FIFO) (loại được tạo bởi mkfifo
); một số hệ thống có khả năng hơn nữa như ổ cắm unix và cửa ra vào. Ví dụ về các mô tả tệp không có tệp có tên được liên kết bao gồm các đường ống (loại được tạo bởi pipe
) và các ổ cắm mạng .
/dev/fd/0
, /dev/stdin
Và /proc/self/fd/0
là tên tập tin (tất cả tương đương) với một ý nghĩa đặc biệt: tất cả họ đều ñònh bất cứ tập tin hiện đang truy cập thông qua mô tả tập tin 0. Khi một quá trình mở này, các bản kernel entry với chỉ số 0 trong bảng mô tả mô tả tập tin vào một mới mô tả. Mở bất kỳ tệp nào trong số này tương đương với gọi dup(0)
. Các tệp được đặt tên là một cách gián tiếp để có được một quy trình sử dụng một trong các tệp đã mở của nó thay vì mở một tệp mới; chúng hầu như rất hữu ích để truyền vào dòng lệnh của chương trình, trong đó chương trình hy vọng tên của tệp sẽ mở.