Використання -як імені файлу для позначення stdin / stdout - це умова, якою використовується багато програм. Це не особлива властивість імені файлу. Ядро не розпізнається -як особливе, тому будь-які системні виклики, що посилаються на -ім'я файлу, будуть використовуватись -буквально як ім'я файлу.
З перенаправленням bash -не розпізнається як спеціальне ім'я файлу, тому bash використовуватиме це як буквальне ім'я файлу.
Коли catрядок бачить -як ім'я файлу, він трактує його як синонім stdin. Щоб обійти це, потрібно змінити рядок, який catбачить таким чином, щоб він все ще посилався на файл, який називається -. Звичайний спосіб зробити це - префіксація імені файлу шляхом - ./-або /home/Tim/-. Ця методика також використовується для вирішення подібних проблем, коли параметри командного рядка зіштовхуються з іменами файлів, тому файл, згаданий як ./-e, не відображається, наприклад, як -eкомандний рядок для програми.