Я був трохи розгублений цим виразом:
gcc -c -g program.c >& compiler.txt
Я знаю &>filename
, що перенаправить stdout і stderr у файл filename
. Але в цьому випадку амперсанд після знаку більше. Це схоже на форму M>&N
, де M
і N
є дескрипторами файлів.
У наведеному вище фрагменті коду, робить M=1
і N='compiler.txt'
? Чим саме це відрізняється від:
gcc -c -g program.c > compiler.txt (ampersand removed)
Я розумію, що кожен відкритий файл пов’язаний з дескриптором файлу більше 2. Чи правильно це?
Якщо так, чи є ім’я файлу взаємозамінним із його дескриптором файлу як ціллю переспрямування?