GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tronquer des fichiers (vides) sous Linux

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 supprimer le fichier.

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

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

Numéro de redirection du shell

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

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

: > filename

Décomposons la commande :

  • Le : deux-points signifie true et ne produit aucune sortie.
  • L'opérateur de redirection > rediriger 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 du cat commande pour afficher le contenu de /dev/null périphérique, qui ne renvoie qu'un caractère de fin de fichier :

cat /dev/null > filename

Une autre commande qui peut être utilisée est echo . Le -n l'option indique echo pour ne pas ajouter de saut de 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 des 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 la redirection 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 le -c drapeau :

sudo sh -c '> filename'

Une autre option consiste à diriger la sortie vers le tee commande, élevez le tee privilèges avec sudo , et écrivez la sortie vide dans un fichier donné :

: | sudo tee filename

truncate Commande #

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 les fichiers à une taille nulle avec le truncate commande, est la suivante :

truncate -s 0 filename

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

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

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 une grande quantité d'espace disque.

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

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

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

Conclusion #

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

Si vous avez des questions ou des remarques, veuillez laisser un commentaire ci-dessous.


Linux
  1. Comment extraire les fichiers .gz et .tar.gz sous Linux

  2. Comment vider un fichier journal sous Linux

  3. Comment utiliser Netcat pour transférer des fichiers sous Linux

  4. Comment vider (tronquer) un fichier sous Linux qui existe déjà et qui est protégé d'une manière ou d'une autre ?

  5. commande linux pour vider tous les fichiers d'un répertoire

Comment renommer un ou plusieurs fichiers sous Linux

Comment décompresser les fichiers gz sous Linux

Comment créer un lien symbolique vers un fichier sous Linux

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment supprimer des fichiers répertoriés dans un autre fichier sous Linux

Comment compresser un fichier sous Linux