ทั้งสี่ของ/dev/fd/0
, /dev/stdin
, /proc/self/fd/0
และ/dev/pts/2
เป็นชื่อไฟล์เช่นเดียวกับ/////dev/../dev/fd//0
, /bin/sh
, /etc/fstab
, /fioejfoeijf
ฯลฯ ทั้งหมด แต่ที่ตัวอย่างสุดท้ายมีแนวโน้มที่จะเป็นชื่อของไฟล์ที่มีอยู่บนเครื่องของคุณ ชื่อไฟล์คือสตริงที่สามารถกำหนดไฟล์บนระบบไฟล์ของคุณ ภายใต้ Linux สตริงใด ๆ ที่ไม่มีไบต์ว่างและมีความยาวไม่เกิน 4096 ไบต์เป็นชื่อไฟล์ที่ถูกต้อง มีชื่อหลายชื่อเหล่านี้จะเทียบเท่าเช่น/bin/sh
เทียบเท่ากับ///bin/sh
, /bin/../bin/sh
(สมมติว่า/bin
เป็นไดเรกทอรีที่มีอยู่) ฯลฯ ทั้งหมดตัวอย่างที่ผมเคยได้รับเพื่อให้ห่างไกลที่มีชื่อไฟล์ที่แน่นอน; นอกจากนี้ยังมีชื่อไฟล์แบบสัมพัทธ์ซึ่งไม่ได้ขึ้นต้นด้วย/
และมีความหมายขึ้นอยู่กับไดเรกทอรีปัจจุบัน
คำศัพท์ที่ล้อมรอบชื่อไฟล์ไม่เป็นสากล บางครั้ง "ชื่อไฟล์" หมายถึงเส้นทางแบบเต็มไปยังไฟล์และบางครั้งก็หมายถึงชื่อของรายการไดเรกทอรี คำศัพท์ POSIX คือ " ชื่อไฟล์ " หรือ " ส่วนประกอบชื่อพา ธ " สำหรับชื่อของรายการไดเรกทอรีและ " ชื่อพา ธ " สำหรับเส้นทางแบบเต็ม
file descriptor กำหนดไฟล์เปิดในกระบวนการเฉพาะ เคอร์เนลรักษาตารางของตัวให้คำอธิบายไฟล์สำหรับแต่ละกระบวนการ แต่ละรายการในตาราง file descriptor ระบุว่าต้องทำอย่างไรหากกระบวนการร้องขอการอ่านการเขียนและการดำเนินการอื่น ๆ บน file descriptor
ตัวอธิบายไฟล์อาจสอดคล้องกับไฟล์และมีชื่อที่เกี่ยวข้อง แต่ไม่ใช่ทั้งหมดที่ทำ สำหรับผู้ที่ทำไฟล์อาจเป็นไฟล์ปกติไดเรกทอรีไฟล์อุปกรณ์หรือไปป์ที่มีชื่อ (เรียกว่า FIFO) (ชนิดที่สร้างขึ้นโดยmkfifo
); ระบบบางระบบมีความเป็นไปได้เพิ่มเติมเช่นซ็อกเก็ตยูนิกซ์และประตู ตัวอย่างของการอธิบายไฟล์ที่ไม่ได้มีการตั้งชื่อไฟล์ที่เกี่ยวข้องรวมถึงท่อ (ชนิดที่สร้างขึ้นโดยpipe
) และเครือข่ายซ็อกเก็ต
/dev/fd/0
, /dev/stdin
และ/proc/self/fd/0
เป็นชื่อไฟล์ (เทียบเท่าทั้งหมด) มีความหมายที่แปลกประหลาดที่พวกเขากำหนดทั้งหมดแล้วแต่จำนวนใดจะเข้าถึงไฟล์ผ่านทางไฟล์อธิบาย 0. เมื่อกระบวนการเปิดเหล่านี้เคอร์เนลสำเนารายการที่มีค่าดัชนี 0 ในตารางอธิบายไฟล์อธิบายไปอยู่ที่ใหม่ ข้อบ่งชี้ dup(0)
เปิดไฟล์เหล่านี้จะเทียบเท่ากับการโทร ไฟล์ที่กำหนดชื่อเป็นวิธีที่จะทำให้กระบวนการใช้ไฟล์ที่เปิดอยู่แล้วโดยทางอ้อมแทนที่จะเปิดไฟล์ใหม่ ส่วนใหญ่จะเป็นประโยชน์ในการส่งผ่านบรรทัดคำสั่งของโปรแกรมซึ่งโปรแกรมคาดว่าชื่อของไฟล์ที่จะเปิด