Maison  >  Article  >  Tutoriel système  >  Pack de compétences ! 5 façons d'effacer ou de supprimer le contenu de fichiers volumineux sous Linux

Pack de compétences ! 5 façons d'effacer ou de supprimer le contenu de fichiers volumineux sous Linux

王林
王林avant
2024-02-11 15:30:34885parcourir

Lors du traitement de fichiers sous le terminal Linux, nous souhaitons parfois effacer directement le contenu des fichiers sans utiliser d'éditeur de ligne de commande Linux pour ouvrir ces fichiers. Alors, comment pouvons-nous atteindre cet objectif ? Dans cet article, nous présenterons plusieurs méthodes pour effacer le contenu des fichiers à l'aide de quelques commandes pratiques.

Remarque : Puisque tout sous Linux est un fichier, vous devez toujours faire attention à vous assurer que les fichiers que vous souhaitez effacer ne sont pas des fichiers utilisateur ou des fichiers système importants. La suppression de fichiers système ou de fichiers de configuration importants peut entraîner de graves pannes d'application ou des erreurs système.

Astuce : Dans l'exemple ci-dessous, nous utiliserons un fichier nommé access.log comme exemple.

1. Effacez le contenu du fichier en redirigeant vers Null

Le moyen le plus simple d'effacer ou de rendre un fichier vide est de rediriger null (quelque chose qui n'existe pas) vers le fichier via le shell comme ceci :

# > access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

2. Utilisez la redirection de commande « vraie » pour effacer les fichiers

Ci-dessous, nous utiliserons le symbole :, qui est une commande intégrée du shell et équivaut à la vraie commande. Elle peut être utilisée comme une opération no-op (c'est-à-dire n'effectuer aucune opération). Une autre façon d'effacer un fichier consiste à rediriger la sortie de la commande intégrée : ou true vers un fichier, comme suit :

# : > access.log

# true > access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

3. Utilisez l'utilitaire cat/cp/dd et le périphérique /dev/null pour effacer les fichiers

Sous Linux, les périphériques nuls sont essentiellement utilisés pour supprimer les flux de sortie qui ne sont plus nécessaires à un processus, ou les fichiers vierges qui servent de flux d'entrée. Ceux-ci peuvent généralement être obtenus à l'aide du mécanisme de redirection, de sorte que le fichier de périphérique /dev/null est. un fichier spécial qui effacera toutes les entrées qui lui sont envoyées et sa sortie peut être traitée comme un fichier vide. De plus, vous pouvez effacer le fichier en utilisant la commande cat pour afficher le contenu de /dev/null, puis rediriger la sortie vers un fichier.

# cat /dev/null > access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

Ensuite, nous utiliserons la commande cp pour copier le contenu de /dev/null dans un fichier afin d'effacer le fichier, comme indiqué ci-dessous :

# cp /dev/null access.log

技能包!Linux 下清空或删除大文件内容的 5 种方法
Dans la commande suivante, if représente le fichier d'entrée et of représente le fichier de sortie.

# dd if=/dev/null of=access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

4. Utilisez la commande echo pour effacer le fichier

Ici, vous pouvez utiliser la commande echo pour rediriger le contenu de la chaîne vide vers un fichier, comme suit :

# echo "" > access.log
或者
# echo > access.log

技能包!Linux 下清空或删除大文件内容的 5 种方法
Remarque : Vous devez vous rappeler qu'une chaîne vide n'est pas équivalente à null . Une chaîne indique qu'il s'agit d'une chose spécifique, mais son contenu peut être vide, mais null signifie que quelque chose n'existe pas. Pour cette raison, lorsque vous utilisez la commande cat pour afficher le contenu du fichier après avoir redirigé la sortie de la commande echo comme entrée vers un fichier, vous verrez une ligne vide (c'est-à-dire une chaîne vide).
Pour écrire null en sortie dans un fichier, vous devez utiliser l'option -n, qui indique à echo de ne pas afficher la nouvelle ligne de fin comme le fait la commande ci-dessus.

# echo -n "" > access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

5. Utilisez la commande truncate pour effacer le contenu du fichier

truncate peut être utilisé pour réduire ou agrandir un fichier à une taille donnée.
Vous pouvez l'utiliser avec le paramètre -s pour spécifier la taille du fichier. Pour effacer le contenu du fichier, définissez la taille du fichier sur 0 dans la commande suivante :

# truncate -s 0 access.log
技能包!Linux 下清空或删除大文件内容的 5 种方法

C’est tout ce que je veux vous présenter. Dans cet article, nous avons abordé plusieurs façons d'effacer ou de vider le contenu d'un fichier en utilisant des outils de ligne de commande simples et des mécanismes de redirection shell.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer