Occasionnellement, lorsque vous traitez des fichiers dans le terminal Linux, vous pouvez vouloir effacer le contenu d’un fichier sans nécessairement l’ouvrir en utilisant un éditeur de ligne de commande Linux. Comment cela peut-il être réalisé ? Dans cet article, nous allons passer en revue plusieurs façons différentes de vider le contenu d’un fichier avec l’aide de quelques commandes utiles.
Attention : Avant de procéder à l’examen des différentes façons, notez que, comme sous Linux tout est un fichier, vous devez toujours vous assurer que le ou les fichiers que vous videz ne sont pas des fichiers utilisateur ou système importants. Vider le contenu d’un système critique ou d’un fichier de configuration pourrait entraîner une erreur ou une défaillance fatale de l’application/du système.
Ceci étant dit, voici les moyens de vider le contenu des fichiers à partir de la ligne de commande.
Important : Pour les besoins de cet article, nous avons utilisé le fichier access.log
dans les exemples suivants.
Vider le contenu d’un fichier en redirigeant vers Null
Un moyen plus simple de vider ou d’effacer le contenu d’un fichier en utilisant la redirection shell null
(objet inexistant) vers le fichier comme ci-dessous :
# > access.log
Vider un fichier en utilisant la commande ‘true’ Redirection
Ici nous utiliserons un symbole :
est une commande intégrée au shell qui est essentiellement équivalente à la commande true
et elle peut être utilisée comme un no-op (pas d’opération).
Une autre méthode consiste à rediriger la sortie de :
ou de la commande intégrée true
vers le fichier comme ceci :
# : > access.logOR # true > access.log
Empty File Using cat/cp/dd utilities with /dev/null
Dans Linux, le périphérique null
est fondamentalement utilisé pour le rejet des flux de sortie indésirables d’un processus, ou bien comme un fichier vide approprié pour les flux d’entrée. Ceci est normalement fait par le mécanisme de redirection.
Et le fichier de périphérique /dev/null
est donc un fichier spécial qui écrit-off (supprime) toute entrée envoyée à lui ou sa sortie est la même que celle d’un fichier vide.
De plus, vous pouvez vider le contenu d’un fichier en redirigeant la sortie de /dev/null
vers lui (fichier) comme entrée en utilisant la commande cat :
# cat /dev/null > access.log
Puis, nous utiliserons la commande cp pour vider le contenu d’un fichier comme indiqué.
# cp /dev/null access.log
Dans la commande suivante, if
signifie le fichier d’entrée et of
fait référence au fichier de sortie.
# dd if=/dev/null of=access.log
Fichier vide en utilisant la commande echo
Ici, vous pouvez utiliser une commande echo avec une chaîne vide et la rediriger vers le fichier comme suit :
# echo "" > access.logOR# echo > access.log
Note : Vous devez garder à l’esprit qu’une chaîne vide n’est pas la même chose que null. Une chaîne de caractères est déjà un objet autant qu’elle peut être vide alors que null signifie simplement la non-existence d’un objet.
Pour cette raison, lorsque vous redirigez la sortie de la commande echo ci-dessus dans le fichier, et que vous visualisez le contenu du fichier en utilisant la commande cat, est imprime une ligne vide (chaîne de caractères vide).
Pour envoyer une sortie nulle au fichier, utilisez l’indicateur -n
qui indique à echo de ne pas sortir la nouvelle ligne de queue qui mène à la ligne vide produite dans la commande précédente.
# echo -n "" > access.log
Fichier vide utilisant la commande truncate
La commande truncate aide à réduire ou à étendre la taille d’un fichier à une taille définie.
Vous pouvez l’employer avec l’option -s
qui spécifie la taille du fichier. Pour vider le contenu d’un fichier, utilisez une taille de 0 (zéro) comme dans la commande suivante :
# truncate -s 0 access.log
C’est tout pour le moment, dans cet article nous avons couvert plusieurs méthodes pour effacer ou vider le contenu d’un fichier en utilisant de simples utilitaires de ligne de commande et le mécanisme de redirection du shell.
Ce ne sont probablement pas les seules méthodes pratiques disponibles, vous pouvez donc également nous faire part de toute autre méthode non mentionnée dans ce guide via la section de commentaires ci-dessous.