Ieri ho letto questo commento SO che dice che nella shell (almeno bash) >&-"ha lo stesso risultato di" >/dev/null.
Tale commento in realtà si riferisce alla guida ABS come la fonte delle sue informazioni. Ma quella fonte dice che la >&-sintassi "chiude i descrittori di file".
Non mi è chiaro se le due azioni di chiusura di un descrittore di file e reindirizzamento sul dispositivo null siano totalmente equivalenti. Quindi la mia domanda è: sono?
In apparenza sembra che chiudere un descrittore sia come chiudere una porta ma reindirizzarlo a un dispositivo nullo sta aprendo una porta al limbo! I due non mi sembrano esattamente gli stessi perché se vedo una porta chiusa, non proverò a buttar via niente da essa, ma se vedo una porta aperta, suppongo di poterlo fare.
In altre parole, mi sono sempre chiesto se >/dev/nullsignifica che cat mybigfile >/dev/nullavrebbe effettivamente elaborato ogni byte del file e scriverlo nel /dev/nullquale lo dimentica. D'altra parte, se la shell incontra un descrittore di file chiuso, tendo a pensare (ma non sono sicuro) che semplicemente non scriverà nulla, anche se rimane la domanda se leggeràcat comunque ogni byte.
Questo commento dice >&-e >/dev/null" dovrebbe " essere lo stesso, ma non è una risposta così clamorosa per me. Mi piacerebbe avere una risposta più autorevole con qualche riferimento a standard o core di base o no ...