Occasione, mentre si ha a che fare con i file nel terminale Linux, si può desiderare di cancellare il contenuto di un file senza necessariamente aprirlo utilizzando qualsiasi editor della riga di comando Linux. Come si può ottenere questo? In questo articolo, andremo attraverso diversi modi di svuotare il contenuto dei file con l’aiuto di alcuni utili comandi.
Attenzione: Prima di procedere a vedere i vari modi, si noti che poiché in Linux tutto è un file, è necessario assicurarsi sempre che il file (o i file) che si sta svuotando non siano importanti file utente o di sistema. Cancellare il contenuto di un file critico di sistema o di configurazione potrebbe portare ad un errore fatale dell’applicazione/sistema o ad un fallimento.
Detto questo, di seguito sono riportati i mezzi per cancellare il contenuto dei file dalla riga di comando.
Importante: Per lo scopo di questo articolo, abbiamo usato il file access.log
negli esempi seguenti.
Empty File Content by Redirecting to Null
Un modo semplice per svuotare o rendere vuoto il contenuto di un file usando la shell redirect null
(oggetto inesistente) al file come sotto:
# > access.log
Empty File Using ‘true’ Command Redirection
Qui useremo un simbolo :
è un comando integrato nella shell che è sostanzialmente equivalente al comando true
e può essere usato come no-op (nessuna operazione).
Un altro metodo è quello di reindirizzare l’output del comando integrato :
o true
al file in questo modo:
# : > access.logOR # true > access.log
Empty File Using cat/cp/dd utilities with /dev/null
In Linux, il dispositivo null
è fondamentalmente utilizzato per scartare flussi di output indesiderati di un processo, o come file vuoto adatto per flussi di input. Questo è normalmente fatto dal meccanismo di reindirizzamento.
E il file di dispositivo /dev/null
è quindi un file speciale che cancella (rimuove) qualsiasi input inviato ad esso o il suo output è uguale a quello di un file vuoto.
Inoltre, puoi svuotare il contenuto di un file reindirizzando l’output di /dev/null
ad esso (file) come input usando il comando cat:
# cat /dev/null > access.log
In seguito, useremo il comando cp per cancellare il contenuto di un file come mostrato.
# cp /dev/null access.log
Nel seguente comando, if
significa il file di input e of
si riferisce al file di output.
# dd if=/dev/null of=access.log
File vuoto usando il comando echo
Qui, puoi usare un comando echo con una stringa vuota e reindirizzarla al file come segue:
# echo "" > access.logOR# echo > access.log
Nota: Si dovrebbe tenere a mente che una stringa vuota non è la stessa cosa di null. Una stringa è già un oggetto tanto quanto può essere vuota, mentre null significa semplicemente la non esistenza di un oggetto.
Per questa ragione, quando reindirizzate l’output del comando echo sopra nel file, e visualizzate il contenuto del file usando il comando cat, viene stampata una linea vuota (stringa vuota).
Per inviare un output nullo al file, usate il flag -n
che dice a echo di non emettere la newline finale che porta alla linea vuota prodotta nel comando precedente.
# echo -n "" > access.log
Empty File Using truncate Command
Il comando truncate aiuta a ridurre o estendere la dimensione di un file ad una dimensione definita.
Puoi impiegarlo con l’opzione -s
che specifica la dimensione del file. Per svuotare il contenuto di un file, usa una dimensione di 0 (zero) come nel prossimo comando:
# truncate -s 0 access.log
Questo è tutto per ora, in questo articolo abbiamo coperto diversi metodi per cancellare o svuotare il contenuto di un file usando semplici utilità della linea di comando e meccanismi di reindirizzamento della shell.
Questi non sono probabilmente gli unici modi pratici disponibili per fare questo, quindi puoi anche parlarci di qualsiasi altro metodo non menzionato in questa guida attraverso la sezione feedback qui sotto.