Sappiamo tutti come l'esecuzione di un comando nella riga di comando di Linux, il Terminale, porti all'esecuzione del comando e alla stampa dei risultati nel Terminale stesso. A volte, questa visualizzazione immediata dell'output non è sufficiente, soprattutto se si desidera salvare l'output per un uso successivo. Fortunatamente, bash Linux e tutto il bash del sistema operativo, del resto, è dotato della capacità di stampare l'output di un comando su un file specifico. In questo articolo, ci occuperemo delle seguenti due attività:
- Salvataggio dell'output del comando su un file
- Stampare l'output sul terminale e salvarlo in un file
I comandi menzionati in questo articolo sono stati eseguiti su un sistema Ubuntu 18.04 LTS.
Salvataggio dell'output del comando su un file
Eseguiremo alcuni esempi in cui l'output dei comandi verrà salvato sul nome del file che specifichiamo.
Crea nuovo file/Sostituisci file esistente
Se desideri salvare l'output di un comando in un nuovo file o sostituire il contenuto di un file già esistente con l'output del comando, utilizza la seguente sintassi:
$ [command] > [/filelocation/filename]
Ad esempio, utilizzerò il comando lscpu (che visualizza le informazioni di sistema) e quindi ne stamperò il contenuto nel file denominato systeminformation.txt. Questo file non esiste già sul mio sistema.
Quando accedo a questo file tramite il file manager, appare così:
Aggiungi l'output al file esistente
Se vuoi salvare l'output di un comando Linux in un file senza alterarne il contenuto già esistente, puoi usare la seguente sintassi:
$ [command] >> [/filelocation/filename]
Ad esempio, il comando seguente aggiungerà il risultato del comando ls alla fine del mio file systeminformation.txt già esistente.
Il seguente file che una volta conteneva solo le mie informazioni di sistema ora contiene anche l'output del mio comando ls:
Stampare l'output sul terminale e salvarlo in un file
Potresti aver notato che i comandi che abbiamo menzionato sopra salvano solo l'output nel file senza stamparli sul Terminale stesso. Utilizzare la seguente sintassi se si desidera visualizzare l'output del comando anche sul Terminale:
$ [command] | tee [/filelocation/filename]
Ad esempio, il testo che vogliamo riprodurre nell'immagine seguente verrà ora ripreso sul Terminale e stampato anche nel file miofile.txt.
Questi sono i contenuti del file generato tramite il comando:
Se si desidera aggiungere l'output di un comando a un file già esistente. Si prega di seguire questa sintassi:
$ [command] | tee -a [/filelocation/filename]
Ad esempio, l'immagine seguente mostra come altro testo verrà ripreso e quindi aggiunto al mio file già esistente:
Ecco come appare ora il file:
Questi file di testo orientati all'output che abbiamo generato tramite questo articolo possono essere molto più utili in alcuni casi rispetto alla normale stampa dell'output sul terminale. Ecco quanto è potente la bash di Ubuntu!