Tüm dört /dev/fd/0
, /dev/stdin
, /proc/self/fd/0
ve /dev/pts/2
dosya adları, gibidir /////dev/../dev/fd//0
, /bin/sh
, /etc/fstab
, /fioejfoeijf
, vb Tüm ama bu son örnek olasılıkla makinenizde mevcut bir dosyanın adı olması için vardır. Dosya adı, dosya sisteminizde bir dosya belirleyebilen bir dizedir; Linux altında, boş bir bayt içermeyen ve en fazla 4096 bayt uzunluğunda olan herhangi bir dize geçerli bir dosya adıdır. Bu isimlerin çoğu örneğin eşdeğerdir /bin/sh
eşdeğer olduğu ///bin/sh
, /bin/../bin/sh
(varsayarak /bin
varolan dizini edilir) vb ı verdik Bütün örnekler şu ana kadar mutlak dosya isimleridir; bir ile başlamayan /
ve anlamları geçerli dizine bağlı olan göreceli dosya adları da vardır .
Dosya adlarını çevreleyen terminoloji evrensel değildir; bazen “dosya adı” bir dosyanın tam yolu anlamına gelir ve bazen de bir dizin girişinin adı anlamına gelir. POSIX terminolojisi, bir dizin girişinin adı için “ dosya adı ” veya “ yol adı bileşeni ” ve tam yol için “ yol adı ” dır .
Dosya tanımlayıcı, belirli bir işlemde açık bir dosya belirtir . Çekirdek, her işlem için bir dosya tanımlayıcıları tablosu tutar. Dosya tanımlayıcı tablosundaki her girdi, işlem dosya tanımlayıcıdaki okuma, yazma ve diğer işlemleri isterse ne yapılacağını gösterir.
Dosya tanımlayıcıları bir dosyaya karşılık gelebilir ve ilişkili bir ada sahip olabilir, ancak hepsi buna sahip değildir. Bunu yapanlar için, dosya normal bir dosya, bir dizin, bir aygıt dosyası veya adlandırılmış bir kanal (FIFO olarak da adlandırılır) (tarafından oluşturulan tür mkfifo
) olabilir; bazı sistemlerde unix soketleri ve kapılar gibi başka olasılıklar da vardır. İlişkilendirilmiş adlandırılmış bir dosyaya sahip olmayan dosya tanımlayıcı örnekleri arasında borular (tarafından oluşturulan tür pipe
) ve ağ yuvaları bulunur .
/dev/fd/0
, /dev/stdin
ve /proc/self/fd/0
tuhaf bir anlamı olan dosya adlarıdır (tümü eşdeğerdir): hepsi dosya tanımlayıcı 0 aracılığıyla şu anda hangi dosyaya erişildiğini belirtir. Bir işlem bunları açtığında, çekirdek dosya tanımlayıcı tanımlayıcı tablosundaki dizin 0 ile girişi yeni bir dosyaya kopyalar. açıklayıcısı. Bu dosyalardan herhangi birini açmak çağrıya eşdeğerdir dup(0)
. Adlandırılmış dosyalar, yeni bir dosya açmak yerine, zaten açık olan dosyalarından birini kullanmak için dolaylı olarak bir işlem elde etmenin bir yoludur; çoğunlukla programın bir dosyanın adının açılmasını beklediği bir programın komut satırından geçmek için kullanışlıdır.