Android

Comment tronquer des fichiers (vides) sous Linux

Commandes de base Linux - Ep03 - Créer et supprimer un répertoire vide: mkdir, rmdir

Commandes de base Linux - Ep03 - Créer et supprimer un répertoire vide: mkdir, rmdir

Table des matières:

Anonim

Dans certaines situations, vous souhaiterez peut-être tronquer (vider) un fichier existant à une longueur nulle. En termes simples, tronquer un fichier signifie supprimer le contenu du fichier sans le supprimer.

Il est beaucoup plus rapide et plus facile de tronquer un fichier que de le supprimer, de le recréer et de définir les autorisations et la propriété appropriées. En outre, si le fichier est ouvert par un processus, la suppression du fichier peut entraîner un dysfonctionnement du programme qui l'utilise.

Ce tutoriel explique comment tronquer des fichiers à une taille nulle dans les systèmes Linux à l'aide de la redirection shell et de la commande truncate .

Redirection de shell

La méthode la plus simple et la plus utilisée pour tronquer des fichiers consiste à utiliser l'opérateur de redirection shell.

Le format général pour tronquer les fichiers à l'aide de la redirection est le suivant:

: > filename

Décomposons la commande:

  • Le signe deux : points signifie true et ne produit aucune sortie. L'opérateur de redirection > redirige la sortie de la commande précédente vers le fichier donné. filename , le fichier que vous souhaitez tronquer.

Si le fichier existe, il sera tronqué à zéro. Sinon, le fichier sera créé.

Au lieu de : peut également utiliser une autre commande qui ne produit aucune sortie.

Voici un exemple d'utilisation de la commande cat pour afficher le contenu du périphérique /dev/null , qui ne renvoie qu'un caractère de fin de fichier:

cat /dev/null > filename

echo est une autre commande qui peut être utilisée. L'option -n indique à echo ne pas ajouter de nouvelle ligne:

echo -n > filename

Sur la plupart des shells modernes tels que Bash ou Zsh, vous pouvez omettre la commande avant le symbole de redirection et utiliser:

> filename

Pour pouvoir tronquer un fichier, vous devez disposer d'autorisations d'écriture sur le fichier. Habituellement, vous utiliseriez sudo pour cela, mais les privilèges root élevés ne s'appliquent pas à la redirection. Voici un exemple:

sudo: > /var/log/syslog

bash: /var/log/syslog: Permission denied

Il existe plusieurs solutions qui permettent de rediriger avec sudo . La première option peut exécuter un nouveau shell avec sudo et exécuter une commande à l'intérieur de ce shell en utilisant l'indicateur -c :

sudo sh -c '> filename'

Une autre option consiste à diriger la sortie vers la commande tee , à élever les privilèges de tee avec sudo et à écrire la sortie vide dans un fichier donné:

: | sudo tee filename

commande truncate

truncate est un utilitaire de ligne de commande qui vous permet de réduire ou d'étendre la taille d'un fichier à une taille donnée.

La syntaxe générale pour tronquer des fichiers à une taille nulle avec la commande truncate est la suivante:

truncate -s 0 filename

L'option -s 0 définit la taille du fichier à zéro.

Par exemple, pour vider le journal d'accès Nginx, vous utiliseriez:

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

Vider tous les fichiers journaux

Au fil du temps, votre lecteur de disque peut être encombré de nombreux fichiers journaux volumineux occupant de grandes quantités d'espace disque.

La commande suivante videra les fichiers se terminant par «.log» sous le répertoire /var/log :

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

Une meilleure option serait de faire pivoter, compresser et supprimer les fichiers journaux avec l'outil logrotate .

Conclusion

Pour tronquer un fichier sous Linux, utilisez l'opérateur de redirection > suivi du nom du fichier.

tronquer le terminal