Während der Nutzung des Computers entsteht im System eine Menge Datenmüll. Am häufigsten wird dieselbe Datei an verschiedenen Orten gespeichert. Dies führt dazu, dass viel Speicherplatz belegt wird und das System immer langsamer läuft. Wenn auf Ihrem Computer also nicht genügend Speicherplatz vorhanden ist, können Sie versuchen, solche Dateien zu löschen, um Speicherplatz freizugeben. Unter Linux können wir dieselbe Datei im System finden, indem wir den Inode-Wert der Datei ermitteln. Ein Inode ist eine Datenstruktur, die alle Informationen zu einer Datei aufzeichnet, außer dem Dateinamen und dem Dateiinhalt. Wenn zwei oder mehr Dateien denselben Inode-Wert haben, sind ihre Inhalte, Eigentümer und Berechtigungen tatsächlich gleich, auch wenn ihre Dateinamen und Speicherorte unterschiedlich sind, und wir können sie als dieselbe Datei betrachten. Bei diesem Dateityp handelt es sich eigentlich um einen sogenannten „Hardlink“. Hardlinks haben denselben Inode-Wert, aber unterschiedliche Dateinamen. Ein Softlink ist eigentlich eine Verknüpfung, die auf die Zieldatei zeigt, aber über einen eigenen Inode-Wert verfügt. $ ls -l mein* -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 meine Datei lrwxrwxrwx 1 liangxu liangxu 6. April 15 11:18 myref -> myfile -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 mytwin Wir können nicht direkt wissen, welche Dateien im selben Verzeichnis denselben Inode-Wert haben, aber es ist nicht schwierig, sie zu identifizieren. Tatsächlich können wir diese Dateien direkt finden, indem wir den Befehl ls -i verwenden und nach Inode-Wert sortieren. $ ls -i | sort -n | mehr ... 788000 meine Datei <== 788000 mein Zwilling <== 801865 Namensschilder.pdf 786692 Verlasse niemals wütend das Haus 920242 NFCU_Dokumente 800247 nmap-Hinweise In der ersten Spalte dieses Ergebnisses steht der entsprechende Inode-Wert. Anhand dieses Ergebnisses können wir auf einen Blick erkennen, welche Dateien den gleichen Inode-Wert haben. Wenn Sie nur die entsprechende Hardlink-Datei einer Datei finden möchten, können wir den Befehl „find“ verwenden und die Option „-samefile“ hinzufügen, um sie schnell zu finden. $ find . -samefile meinedatei ./meineDatei ./speichern/meineKopie ./meinZwilling Diese Dateien haben alle den gleichen Inode-Wert. Wenn Sie das nicht glauben, können Sie mit dem Befehl ls weitere Informationen anzeigen: $ finde . -samefile meinedatei -ls 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 ./meineDatei 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 ./speichern/mycopy 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 ./mytwin Wir können sehen, dass die Informationen dieser Dateinamen, mit Ausnahme der Dateinamen, genau gleich sind. Aufmerksame Freunde bemerken möglicherweise, dass die zweite Spalte (Anzahl der Hardlinks) 4 beträgt, aber tatsächlich haben wir nur 3 Dateien gefunden, was bedeutet, dass es eine andere Datei gibt, die den Inode-Wert mit ihnen teilt, die wir jedoch nicht über diesen Befehl gefunden haben. Für mich als faule Person ist es zu mühsam, jedes Mal Befehle einzugeben, daher kann ich einfach das Skript verwenden, um dieselben Dateien im Verzeichnis zu finden! #!/bin/bash # sucht nach Dateien, die Inodes teilen vorherige="" # Dateien nach Inode auflisten sort -n > /tmp/$0 # Datei nach doppelten Inode-Nummern durchsuchen während Zeile gelesen wird Tun inode=`echo $line | awk '{print $1}'` wenn [ "$inode" == "$prev" ]; dann grep $inode /tmp/$0 fi vorherige=$inode erledigt < /tmp/$0 # aufräumen rm /tmp/$0 Laufergebnisse: $ ./findHardLinks 788000 meine Datei 788000 mein Zwilling Natürlich können Sie auch den Befehl „find“ verwenden, um alle identischen Dateien im System basierend auf dem Inode-Wert zu finden. $ find / -inum 788000 -ls 2> /dev/null 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 /tmp/mycopy 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 /home/liangxu/meineDatei 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 /home/liangxu/speichern/mycopy 788000 4 -rw-r--r-- 4 liangxu liangxu 228 Apr 12 19:37 /home/liangxu/mytwin In diesem Befehl leiten wir die Fehlermeldung an die spezielle Datei /dev/null um, sodass bei der Suche nach Pfaden, für die wir keine Zugriffsberechtigung haben, der Bildschirm nicht mit der Meldung „Berechtigung verweigert“ gefüllt wird. Dies ist das Ende dieses Artikels zum Auffinden identischer Dateien in Linux. Weitere Informationen zum Auffinden identischer Dateien in Linux finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: js canvas realisiert Bilder mit abgerundeten Ecken
>>: Beispielanalyse der MySQL-Variablenverwendung [Systemvariablen, Benutzervariablen]
Was <fieldset> und <legend> betrifft,...
Docker empfiehlt offiziell, dass wir Port-Mapping...
Bevor Sie mit dem Haupttext dieses Artikels begin...
Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...
In diesem Artikelbeispiel wird der spezifische Co...
Installieren Sie das SSH-Tool 1. Öffnen Sie das T...
Finden Sie das Problem Ich habe vor Kurzem Django...
Lassen Sie uns heute darüber sprechen, wie Sie mi...
Ziehen Sie das Bild Docker-Pull MySQL Sehen Sie s...
Docker-Lernen https://www.cnblogs.com/poloyy/p/15...
1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...
Genug des Smalltalks <br />Basierend auf de...
Die Schritte zum Konfigurieren von Tomcat in IDEA...
In diesem Artikel wird der spezifische Code des n...
Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...