Ricerca nel sito web

5 modi per svuotare o eliminare il contenuto di un file di grandi dimensioni in Linux


Occasionalmente, mentre si ha a che fare con i file in un terminale Linux, è possibile che si desideri cancellare il contenuto di un file senza necessariamente aprirlo utilizzando un editor della riga di comando di Linux. Come è possibile raggiungere questo obiettivo?

In questo articolo esamineremo diversi modi per svuotare il contenuto di un file con l'aiuto di alcuni comandi utili.

Attenzione: prima di procedere con l'esame dei vari modi, tieni presente che poiché in Linux tutto è un file, devi sempre assicurarti che i file che stai svuotando non siano file utente o di sistema importanti . La cancellazione del contenuto di un sistema o di un file di configurazione critico potrebbe causare un errore o un guasto irreversibile dell'applicazione/sistema.

Detto questo, di seguito sono riportati i mezzi per cancellare il contenuto del file dalla riga di comando.

Importante: ai fini di questo articolo, abbiamo utilizzato il file access.log nei seguenti esempi.

1. Svuota il contenuto del file reindirizzando a Null

Il modo più semplice per svuotare o oscurare il contenuto di un file utilizzando la shell reindirizza null (oggetto inesistente) al file come di seguito:

> access.log

2. File vuoto utilizzando il reindirizzamento dei comandi "vero".

Qui useremo un simbolo : è un comando integrato nella shell che è sostanzialmente equivalente al comando true e può essere utilizzato come no-op (nessuna operazione) .

Un altro metodo è reindirizzare l'output del comando integrato : o true al file in questo modo:

: > access.log
OR 
true > access.log

3. File vuoto utilizzando le utilità cat/cp/dd con /dev/null

In Linux, il dispositivo null viene utilizzato fondamentalmente per scartare flussi di output indesiderati di un processo, oppure come file vuoto adatto per flussi di input. Questo viene normalmente fatto tramite un meccanismo di reindirizzamento.

E il file di dispositivo /dev/null è quindi un file speciale che cancella (rimuove) qualsiasi input inviatogli 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 utilizzando il comando cat:

cat /dev/null > access.log

Successivamente, utilizzeremo il comando cp per cancellare il contenuto di un file come mostrato.

cp /dev/null access.log

Nel seguente comando dd, if indica il file di input e of si riferisce al file di output.

dd if=/dev/null of=access.log

4. File vuoto utilizzando il comando echo

Qui puoi utilizzare un comando echo con una stringa vuota e reindirizzarlo al file come segue:

echo "" > access.log
OR
echo > access.log

Nota: dovresti tenere presente che una stringa vuota non è la stessa cosa di null. Una stringa è già un oggetto per quanto possa essere vuota mentre null significa semplicemente la non esistenza di un oggetto.

Per questo motivo, quando si reindirizza il comando out dal comando echo sopra nel file e si visualizza il contenuto del file utilizzando il comando cat, viene stampata una riga vuota (stringa vuota).

Per inviare un output nullo al file, usa il flag -n che dice a echo di non restituire il ritorno a capo finale che porta alla riga vuota prodotta nel comando precedente.

echo -n "" > access.log

5. Svuota file utilizzando il comando troncato

Il comando tronca aiuta a ridurre o estendere la dimensione di un file a una dimensione definita.

Puoi utilizzarlo con l'opzione -s che specifica la dimensione del file. Per svuotare il contenuto di un file, utilizzare una dimensione pari a 0 (zero) come nel comando successivo:

truncate -s 0 access.log

Per ora è tutto, in questo articolo abbiamo trattato diversi metodi per cancellare o svuotare il contenuto dei file utilizzando semplici utilità della riga di comando e meccanismi di reindirizzamento della shell.

Questi non sono probabilmente gli unici modi pratici disponibili per farlo, quindi puoi anche parlarci di eventuali altri metodi non menzionati in questa guida tramite la sezione feedback di seguito.