-
Stdin / stdout'u ifade etmek için dosya adı olarak kullanmak , pek çok programın kullandığı bir kuraldır. Dosya adının özel bir özelliği değil. Çekirdek -
özel olarak tanınmaz , bu nedenle -
dosya adı olarak adlandırılan herhangi bir sistem çağrısı dosya adı -
olarak tam anlamıyla kullanılır .
Bash yönlendirmesi ile, -
özel bir dosya adı olarak tanınmaz, bu nedenle bash bunu değişmez bir dosya adı olarak kullanır.
Ne zaman cat
dize gören -
bir dosya adı olarak, stdin ile eşanlamlı olarak değerlendirir. Bunun üstesinden gelmek için, görünen bir dizeyi, cat
yine de adı verilen bir dosyaya gönderme yapacak biçimde değiştirmeniz gerekir -
. Bunu yapmanın genel yolu, dosya ismini bir yol ile öneklendirmektir - ./-
, veya /home/Tim/-
. Bu teknik aynı zamanda komut satırı seçeneklerinin dosya adlarıyla çakıştığı benzer sorunları gidermek için kullanılır, bu nedenle örneğin bir program ./-e
için -e
komut satırı seçeneği olarak görünmeyen bir dosya .