Come salvo l’output di un comando in un file?

Usa l’operatore del core > <file>: per impostazione predefinita aggiunge l’output, mentre -r sostituisce il file.

Aggiunta predefinita

dns google.com > save.log continua a mostrare il risultato DNS nel terminale e aggiunge nello stesso momento la medesima rappresentazione testuale a save.log nella directory corrente di lil-terminal. Dopo il risultato viene mostrato il percorso di destinazione risolto. Eseguendo di nuovo il comando, il nuovo blocco viene aggiunto senza cancellare quello precedente.

Sostituzione o aggiunta esplicita

Per sostituire il file usa -r dopo la destinazione: dns gmail.com > save.log -r. -a seleziona esplicitamente la modalità di aggiunta, che è già quella predefinita. I percorsi con spazi vanno racchiusi tra virgolette. L’operatore è gestito dal core, quindi i moduli non devono introdurre opzioni di esportazione separate solo per salvare ciò che mostrano.

Quali risultati si possono redirigere

Vengono scritti soltanto i risultati rappresentabili come testo normale. Editor interattivi, richieste di segreti, download ed eventi di controllo del browser non vengono trasformati in file. Se un comando usa già > nella propria grammatica, quel significato resta valido; il reindirizzamento viene riconosciuto come operatore finale dell’output.

Riutilizzare l’ultimo risultato

history -o restituisce l’ultimo risultato testuale reindirizzabile conservato nella sessione PHP corrente. history -o > history.log lo aggiunge, mentre history -o > history.log -r sostituisce il file. Le scorciatoie Ctrl/Command+S sul desktop eseguono gli stessi comandi.

Perché i valori usano i due punti

Nella grammatica attuale, > è riservato al reindirizzamento dell’output gestito dal core. I comandi che ricevono un valore usano :: ini app.ini -w key : value, json app.json -w path : value, ses path : value, attr file key : value e db : SELECT .... In questo modo scompare l’ambiguità e command ... > file mantiene lo stesso significato ovunque. Se è ancora installata una vecchia versione del modulo, il core la riconosce e mostra un messaggio di migrazione invece di reindirizzare silenziosamente dati errati.

Esempi

dns google.com > save.log
dns gmail.com > save.log -r
env > "logs/env current.log" -a
history -o > history.log
history -o > history.log -r

Documentazione correlata

← Torna alle FAQ