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

黄舟
Libérer: 2017-10-14 11:03:06
original
1929 Les gens l'ont consulté

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
Copier après la connexion

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?
Copier après la connexion

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
Copier après la connexion

(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
Copier après la connexion

(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
Copier après la connexion

(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
Copier après la connexion

(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
Copier après la connexion

(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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!