androide

Come troncare i file (vuoti) in Linux

Guida Openshot "base": editing, montaggio, esportazione

Guida Openshot "base": editing, montaggio, esportazione

Sommario:

Anonim

In alcune situazioni, potresti voler troncare (svuotare) un file esistente a 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 creazione e all'impostazione delle autorizzazioni e della proprietà corrette. Inoltre, se il file viene aperto da un processo, la rimozione del file può causare il malfunzionamento del programma che lo utilizza.

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

Shell Redirection

Il metodo più semplice e più usato per troncare i file è usare l'operatore > reindirizzamento della shell.

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

: > filename

Analizziamo il comando:

  • I due punti: true significa e non produce alcun output. L'operatore di reindirizzamento > reindirizza l'output del comando precedente sul file specificato. filename , il file che si desidera troncare.

Se il file esiste, verrà troncato a zero. Altrimenti, verrà creato il file.

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

Ecco un esempio dell'uso del comando cat per generare il contenuto del dispositivo /dev/null , che restituisce solo un carattere di fine file:

cat /dev/null > filename

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

echo -n > filename

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

> filename

Per poter troncare un file, è necessario disporre delle autorizzazioni di scrittura sul file. Di solito, 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 flag -c :

sudo sh -c '> filename'

Un'altra opzione è reindirizzare l'output al comando tee , elevare i privilegi tee con sudo e scrivere l'output vuoto in un determinato file:

: | sudo tee filename

truncate comando

truncate è un'utilità della riga di comando che 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 il comando truncate è la seguente:

truncate -s 0 filename

L'opzione -s 0 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

Nel tempo, l'unità disco potrebbe essere ingombra di molti file di registro di grandi dimensioni che occupano grandi quantità di spazio su disco.

Il seguente comando svuota i file che terminano con ".log" nella directory /var/log :

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

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

Conclusione

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

tronca il terminale