Byłem trochę zdezorientowany tym wyrażeniem:
gcc -c -g program.c >& compiler.txt
Wiem, &>filename
że przekieruje zarówno stdout, jak i stderr do pliku filename
. Ale w tym przypadku ampersand znajduje się po znaku większym niż. Wygląda jak jego forma M>&N
, gdzie M
i N
są deskryptory plików.
W powyższym fragmencie, czy M=1
i N='compiler.txt'
? Czym dokładnie się to różni od:
gcc -c -g program.c > compiler.txt (ampersand removed)
Rozumiem, że każdy otwarty plik jest powiązany z deskryptorem pliku większym niż 2. Czy to prawda?
Jeśli tak, to czy nazwa pliku jest wymienna z deskryptorem pliku jako celem przekierowania?