Heim > Artikel > Betrieb und Instandhaltung > Beispiel für die Verwendung von Inode zum Löschen bestimmter Dateien unter Linux
Der Inode der Datei definiert die Größe der Datei, den Besitzer und andere Eigenschaften der Datei. Jede Datei und jedes Verzeichnis hat eine eigene eindeutige Inode-Nummer. Der folgende Artikel stellt Ihnen daher hauptsächlich die relevanten Informationen zur Verwendung von Inode zum Löschen bestimmter Dateien unter Linux vor. Lassen Sie uns gemeinsam einen Blick darauf werfen.
Vorwort
Wie wir alle wissen, stoßen Sie unter Linux manchmal auf Dateien mit verstümmelten Namen oder einigen speziellen chinesischen Schriftzeichen. Das Löschen anhand des Dateinamens ist schwierig.
Gleichzeitig muss jede Datei in Linux einen eigenen eindeutigen Inode-Wert haben. Zu diesem Zeitpunkt können Sie Dateien mit abnormalen Dateinamen über Inode löschen.
arbeitet im Allgemeinen mit Dateien, die den folgenden ähneln:
[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
Gründe für die Generierung solcher Dateien:
1. Netzwerkanomalie beim Hochladen von Dateien
2. Bestimmte von Windows erstellte Dateinamen
kann unter Linux 3 nicht normal erkannt werden. Chinesische Sonderzeichen können nicht erkannt werden
Die Lösung lautet wie folgt:
1. Fragen Sie die Inode-Werte dieser Dateien ab
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?
Oben ist die Zahl ganz links der Inode-Wert der entsprechenden Datei. Der Befehl rm kann jedoch nicht zum direkten Löschen der Datei verwendet werden
2 .Anormale Dateien löschen
Unter normalen Umständen sollten Sie jedoch vorsichtig sein, wenn Sie vorher einige Tests durchführen Mit der Operation gibt es keine derartigen verstümmelten Zeichen.
Es gibt mehrere Methoden:
Erstellen Sie zuerst die erforderlichen Dateien
[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) Verwenden Sie den Löschparameter, der mit „find“ geliefert wird, um AAA-Dateien zu löschen
[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) Verwenden Sie den mit find gelieferten Parameter -exec in Kombination mit dem Befehl rm, um die BBB-Datei zu löschen (Löschen bestätigen)
[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) Verwenden Sie die mit „find“ gelieferten Parameter „-exec“ und kombinieren Sie sie mit dem Befehl „rm“, um die CCC-Datei zu löschen (ohne Löschbestätigung)
[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) Verwenden Sie find und xargs, um die ddd-Datei zu löschen (-i kann nicht verwendet werden. Parameter zum Bestätigen des Löschvorgangs)
[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) Verwenden Sie die rm-Befehl zum Löschen der angegebenen Datei (der vom Suchbefehl gefundene Dateiname)
[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
Um es zusammenzufassen:
Zusammenfassung
Das obige ist der detaillierte Inhalt vonBeispiel für die Verwendung von Inode zum Löschen bestimmter Dateien unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!