Questo funziona in bash su qualsiasi sistema operativo, da Linux e macOS all'ambiente bash basato su Ubuntu di Windows 10.
Opzione uno: reindirizzare l'output su un solo file
Per utilizzare il reindirizzamento bash, si esegue un comando, specificare il
>
o
>>
operatore, quindi fornire il percorso di un file a cui si desidera reindirizzare l'output.
-
>
reindirizza l'output di un comando in un file, sostituendo il contenuto esistente del file.
-
>>
reindirizza l'output di un comando in un file, aggiungendo l'output ai contenuti esistenti del file.
Tecnicamente, questo reindirizza lo "stdout": l'output standard, che è lo schermo, in un file.
Ecco un semplice esempio. Il
ls
comando elenca file e cartelle nella directory corrente. Così. quando esegui il seguente comando,
ls
elencherà i file e le cartelle nella directory corrente. Ma non li stamperà sullo schermo: li salverà nel file specificato.
ls > /path/to/file
Non è necessario specificare il percorso di un file esistente. Specificare un percorso valido e bash creerà un file in quella posizione.
ls
l'output del comando. Ad esempio, il
cat
comando stampa il contenuto di un file sul terminale:
cat /path/to/file
>
l'operatore sostituisce il contenuto esistente del file con l'output del comando. Se si desidera salvare l'output di più comandi in un singolo file, si utilizzerà il
>>
operatore invece. Ad esempio, il seguente comando aggiungerà le informazioni di sistema al file specificato:
uname -a >> /path/to/file
Se il file non esiste già, bash creerà il file. In caso contrario, bash lascerà da solo il contenuto esistente del file e aggiungerà l'output alla fine del file.
Quando visualizzi il contenuto del file, vedrai i risultati del tuo secondo comando aggiunti alla fine del file:
Opzione due: stampa normalmente l'output e reindirizza a un file
Potrebbe non piacerti reindirizzare l'output con
>
o
>>
operatori, poiché non vedrete l'output del comando nel terminale. Questo è ciò che
tee
il comando è per. Il comando tee stampa l'input che riceve sullo schermo e lo salva in un file allo stesso tempo.
Per reindirizzare l'output di un comando a
tee
stampandolo sullo schermo e salvandolo in un file, utilizzare la seguente sintassi:
command | tee /path/to/file
Questo sostituirà qualsiasi cosa nel file con l'output del comando, proprio come il
>
operatore.
tee
stampando sullo schermo e salvandolo in un file, ma aggiungendolo alla fine del file:
command | tee -a /path/to/file
Questo aggiungerà l'output alla fine del file, proprio come il
>>
operatore.