GNU/Linux >> Linux Esercitazione >  >> Linux

Come troncare (svuotare) i file in Linux

In alcune situazioni, potresti voler troncare (svuotare) un file esistente a una lunghezza zero. In parole semplici, troncare un file significa rimuovere il contenuto del file senza eliminare il file.

Il troncamento di un file è molto più rapido e semplice rispetto all'eliminazione del file, alla sua ricreazione e all'impostazione delle autorizzazioni e della proprietà corrette. Inoltre, se il file viene aperto da un processo, la rimozione del file potrebbe causare il malfunzionamento del programma che lo utilizza.

Questo tutorial spiega come troncare i file a una dimensione zero nei sistemi Linux utilizzando il reindirizzamento della shell e il truncate comando.

Reindirizzamento shell #

Il metodo più semplice e più utilizzato per troncare i file è utilizzare il > operatore di reindirizzamento della shell.

Il formato generale per troncare i file utilizzando il reindirizzamento è:

: > filename

Analizziamo il comando:

  • Il : due punti significa true e non produce output.
  • L'operatore di reindirizzamento > reindirizza l'output del comando precedente al file specificato.
  • filename , il file che vuoi troncare.

Se il file esiste, verrà troncato a zero. In caso contrario, il file verrà creato.

Invece di : può anche usare un altro comando che non produce output.

Ecco un esempio di utilizzo del cat comando per emettere il contenuto di /dev/null dispositivo, che restituisce solo un carattere di fine file:

cat /dev/null > filename

Un altro comando che può essere utilizzato è echo . Il -n l'opzione dice echo non aggiungere una nuova riga:

echo -n > filename

Sulla maggior parte delle shell moderne come Bash o Zsh puoi omettere il comando prima del simbolo di reindirizzamento e utilizzare:

> filename

Per poter troncare un file, è necessario disporre dei permessi di scrittura sul file. Di solito, dovresti usare sudo per questo, ma i privilegi di root elevati non si applicano al reindirizzamento. Ecco un esempio:

sudo : > /var/log/syslog
bash: /var/log/syslog: Permission denied

Esistono diverse soluzioni che consentono il reindirizzamento con sudo . La prima opzione può eseguire una nuova shell con sudo ed eseguire un comando all'interno di quella shell usando il -c bandiera:

sudo sh -c '> filename'

Un'altra opzione è inviare l'output al tee comando, eleva il tee privilegi con sudo e scrivi l'output vuoto in un determinato file:

: | sudo tee filename

truncate Comando #

truncate è un'utilità della riga di comando che ti consente di ridurre o estendere la dimensione di un file a una determinata dimensione.

La sintassi generale per troncare i file a dimensione zero con truncate comando, è il seguente:

truncate -s 0 filename

Il -s 0 l'opzione imposta la dimensione del file su zero.

Ad esempio, per svuotare il registro di accesso di Nginx dovresti usare:

sudo truncate -s 0 /var/log/nginx/access.log

Svuota tutti i file di registro #

Con il passare del tempo, l'unità disco potrebbe essere ingombra con molti file di registro di grandi dimensioni che occupano grandi quantità di spazio su disco.

Il comando seguente svuoterà i file che terminano con ".log" sotto il /var/log directory:

sudo truncate -s 0 /var/log/**/*.log 

Un'opzione migliore sarebbe ruotare, comprimere e rimuovere i file di log con logrotate strumento.

Conclusione #

Per troncare un file in Linux, utilizzare l'operatore di reindirizzamento > seguito dal nome del file.

Se hai domande o commenti, lascia un commento qui sotto.


Linux
  1. Come convertire file in codifica UTF-8 in Linux

  2. Come visualizzare o modificare l'ACL nei file Linux

  3. Come estrarre i file .gz e .tar.gz in Linux

  4. Come svuotare un file di registro in Linux

  5. Come svuotare (troncare) un file su Linux che esiste già ed è protetto in qualche modo?

Come rinominare uno o più file in Linux

Come decomprimere i file gz in Linux

Come collegare simbolicamente un file in Linux

Come trovare file basati su timestamp in Linux

Come eliminare i file elencati in un altro file in Linux

Come comprimere un file in Linux