Maison  >  Article  >  Opération et maintenance  >  Exemple d'utilisation de l'inode pour supprimer les fichiers spécifiés sous Linux

Exemple d'utilisation de l'inode pour supprimer les fichiers spécifiés sous Linux

黄舟
黄舟original
2017-10-14 11:03:061962parcourir

L'inode du fichier définit la taille du fichier, le propriétaire et d'autres caractéristiques du fichier. Chaque fichier et répertoire possède son propre numéro d'inode unique. Ainsi, l'article suivant vous présente principalement les informations pertinentes sur l'utilisation d'inode pour supprimer les fichiers spécifiés sous Linux. Les amis dans le besoin peuvent s'y référer.

Avant-propos

Comme nous le savons tous, sous Linux, vous rencontrez parfois des fichiers avec des noms tronqués ou des caractères chinois spéciaux. Il est difficile de supprimer par nom de fichier.

En même temps, tout fichier sous Linux doit avoir sa propre valeur d'inode unique. À ce stade, vous pouvez utiliser l'inode pour supprimer les fichiers avec des noms de fichiers anormaux.

fonctionne généralement sur des fichiers similaires aux suivants :


[root@server tmp]# ll 
 
总用量 61404-rw-r--r-- 1 root root 0 6月 16 14:58 ? 
 
-rw-r--r-- 1 root root 0 6月 19 12:29 ?? 
 
-rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU-rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ 
 
-rw-r--r-- 1 root root 0 6月 19 12:29 9y??????sy?z?D?l???I?MO???8z????@]9??U@?XlAI]?k

Raisons de la génération de tels fichiers :

1. Anomalie du réseau lors du téléchargement de fichiers

2. Certains noms de fichiers créés par Windows

ne peut pas être reconnu normalement sous Linux 3. Les caractères spéciaux chinois ne sont pas reconnus

La solution est la suivante :

1. Interrogez les valeurs d'inode de ces fichiers

ll -i


[root@server tmp]# ll -i 
 
总用量 6140415206100 -rw-r--r-- 1 root root 0 6月 16 14:58 ?15206090 -rw-r--r-- 1 root root 0 6月 19 12:29 ??15206092 -rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU15206233 -rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ 
 
15206235 -rw-r--r-- 1 root root 0 6月 21 14:53 A??K?

Ci-dessus, le numéro le plus à gauche est la valeur de l'inode du fichier correspondant. Cependant, la commande rm ne peut pas être utilisée pour supprimer le fichier directement. D'autres commandes sont requises

2. . Supprimer les fichiers anormaux

Dans des circonstances normales, ces fichiers sont également rares. Cependant, vous devez être prudent lorsque vous utilisez les commandes rm. Ce n'est pas une exagération d'être familier. avec l'opération. Il n'y a pas de fichiers tronqués, vous pouvez utiliser des fichiers normaux pour les tests

Il existe les méthodes suivantes :

Créez d'abord les fichiers requis.


[root@zstest1 tmp]# cd /tmp 
 
[root@zstest1 tmp]# touch aaa bbb ccc ddd eee 
 
[root@zstest1 tmp]# ll -i 
 
总用量 01442581 -rw-r--r-- 1 root root 0 9月 22 15:00 aaa1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(1) Utilisez le paramètre de suppression fourni avec find pour supprimer les fichiers aaa


[root@zstest1 tmp]# find ./* -inum 1442581 -delete 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb 
 
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(2) Utilisez le paramètre -exec fourni avec find combiné avec la commande rm pour supprimer le fichier bbb (confirmez la suppression)


[root@zstest1 tmp]# find ./* -inum 1442582 -exec rm -i {} \; 
 
rm:是否删除普通空文件 "./bbb"?y 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(3) Utilisez le -exec fourni avec find Les paramètres sont combinés avec la commande rm pour supprimer le fichier ccc (sans confirmation de suppression)


[root@zstest1 tmp]# find ./* -inum 1442583 -exec rm -f {} \; 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(4) Utilisez find et xargs pour supprimer le fichier ddd (-i ne peut pas être utilisé Paramètres pour confirmer la suppression)


[root@zstest1 tmp]# find ./* -inum 1442584 |xargs rm -f 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(5 ) Utilisez la commande rm pour supprimer le fichier spécifié (le nom de fichier trouvé par la commande find)


[root@zstest1 tmp]# rm `find ./* -inum 1442574` 
 
rm:是否删除普通空文件 "./eee"?y 
 
[root@zstest1 tmp]# ll 
 
总用量 0 
 
# 使用find命令的-inum选项确认文件名 
 
[root@zstest1 tmp]# touch fff 
 
[root@zstest1 tmp]# ll -i 
 
总用量 01442574 -rw-r--r-- 1 root root 0 9月 22 15:38 fff 
 
[root@zstest1 tmp]# find ./* -inum 1442574 
 
./fff

Pour résumer :

Les différentes méthodes de suppression ci-dessus, d'une manière générale, se font toutes en spécifiant la valeur inode du fichier, en utilisant l'option -inum de la commande find pour confirmer son nom de fichier, puis le transmettre à la commande rm pour suppression

Terminé, hahaha

Résumé

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn