1- Quando un programma esce sullo stdout, questo è normalmente registrato altrove?
2- Quando si tratta di un problema per rendere un comando dettagliato nella stampa su stdout invece di lavorare in modo silenzioso o reindirizzare a un file?
1- Quando un programma esce sullo stdout, questo è normalmente registrato altrove?
2- Quando si tratta di un problema per rendere un comando dettagliato nella stampa su stdout invece di lavorare in modo silenzioso o reindirizzare a un file?
L'output su stdout non viene registrato per impostazione predefinita, tuttavia è stato scoperto che libvte (utilizzato in un numero di terminali grafici, incluso gnome-terminal) memorizza l'output in un file temporaneo: link
È possibile che altri emulatori di terminali abbiano o memorizzino dati in un file, quindi se i dati sono sensibili, potresti voler avvisare l'utente a seconda del terminale che usano.
Stampare su stdout è abbastanza sicuro, poiché non viene registrato da nessuna parte per impostazione predefinita. I dati andranno persi quando la sessione della console muore, anche se i bit potrebbero finire in memoria. Piping su un file è un problema diverso, dal momento che una volta raggiunto il disco potrebbe finire per essere lasciato su settori inattivi.
Tieni presente che il comando stesso verrà solitamente registrato nella cronologia di bash. Puoi cancellarlo usando history -c
, oppure puoi fermare il comando di essere registrato anteponendolo con un singolo spazio. I comandi con prefisso di uno spazio non sono memorizzati nel registro di bash e non sono memorizzati nella cronologia dei comandi della sessione.
Se sei davvero preoccupato, limitalo a /dev/null
e verrà immediatamente scartato.