Вчора я прочитав цей коментар ТА, який говорить про те, що в оболонці (принаймні bash
) >&-
"є такий самий результат, що і" >/dev/null
.
Цей коментар насправді посилається на посібник ABS як джерело його інформації. Але це джерело говорить, що >&-
синтаксис "закриває дескриптори файлів".
Мені не ясно, чи дві дії закриття дескриптора файлу та перенаправлення його на нульовий пристрій абсолютно рівнозначні. Тож моє запитання: вони?
На його поверхні здається, що закрити дескриптор - це як закрити двері, але перенаправити її на нульовий пристрій - це відкрити двері до кінцівки! Двоє мені не здаються абсолютно однаковими, тому що якщо я побачу закриту двері, я нічого не намагаюся викинути з неї, але якщо я побачу відкриту двері, я припускаю, що можу.
Іншими словами, я завжди замислювався про те, чи є >/dev/null
засоби, які cat mybigfile >/dev/null
насправді оброблять кожен байт файлу і записують його, /dev/null
який він забуває. З іншого боку, якщо оболонка стикається із закритим дескриптором файлів, я схильна вважати (але не впевнений), що вона просто нічого не запише, хоча залишається питання, чи cat
все ще читатиме кожен байт.
Цей коментар говорить >&-
і >/dev/null
" повинен " бути однаковим, але це не настільки гучна відповідь для мене. Я хотів би отримати більш авторитетну відповідь із деяким посиланням на стандартне або вихідне ядро чи ні ...