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]
Hallo zusammen, als ich mir heute das HTML des We...
MySQL-Partitionierung ist hilfreich bei der Verwa...
Inhaltsverzeichnis Frage: 1. Erster Versuch 2. Ra...
Dieser Artikel stellt kurz den Prozess der Einric...
Inhaltsverzeichnis Was ist ein Auslöser Erstellen...
Als ersten Artikel dieser Studiennotiz beginnen w...
Umgebung: (Docker, K8s-Cluster), fahren Sie mit d...
Inhaltsverzeichnis 1. Seiten-Rendering 2. Tags hi...
Reine Front-End-Implementierung:切片上傳斷點續傳.斷點續傳muss...
1. Nachfrage Das Backend stellt solche Daten bere...
Inhaltsverzeichnis 1. Vorstellen gemäß der Bestel...
Code zum Ausblenden von Text, Ausblenden eines bes...
In diesem Artikel wird der spezifische Code zur I...
1. In Windows-Systemen erfordern viele Softwarein...
Inhaltsverzeichnis Vorwort 1. Optimistisches Sper...