So finden Sie identische Dateien in Linux

So finden Sie identische Dateien in Linux

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:
  • Zusammenfassung von fünf Suchbefehlen in Linux
  • So finden Sie eine Datei in Linux unscharf
  • Die Linux-Shell sucht nach Dateien und zeigt Zeilennummern und entsprechende Intervalle an
  • Welcher Befehl eignet sich besser für die unscharfe Suche nach Dateien in Linux?
  • Beispiel für die Dateisuche mit dem Linux-Befehl „find“
  • Detaillierte Erklärung, wie man in Linux nach Zeit gefilterte Dateien in einem Verzeichnis findet
  • So finden Sie Dateien in Linux
  • Vollständige Anleitung zur Dateisuche in Linux

<<:  js canvas realisiert Bilder mit abgerundeten Ecken

>>:  Beispielanalyse der MySQL-Variablenverwendung [Systemvariablen, Benutzervariablen]

Artikel empfehlen

Beispielcode zum Konvertieren von Videos mit der ffmpeg-Befehlszeile

Bevor Sie mit dem Haupttext dieses Artikels begin...

CentOS 7.9 Installations- und Konfigurationsprozess von zabbix5.0.14

Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...

So installieren und konfigurieren Sie den SSH-Dienst in Ubuntu 18.04

Installieren Sie das SSH-Tool 1. Öffnen Sie das T...

Verwenden von js, um den Effekt eines Karussells zu erzielen

Lassen Sie uns heute darüber sprechen, wie Sie mi...

Detaillierter Prozess der FastAPI-Bereitstellung auf Docker

Docker-Lernen https://www.cnblogs.com/poloyy/p/15...

So fügen Sie eindeutige Indizes für Felder in MySQL hinzu und löschen sie

1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...

Fähigkeiten zur Seiten-Refaktorierung - Inhalt

Genug des Smalltalks <br />Basierend auf de...

Detaillierte Schritte zum Konfigurieren des Tomcat-Servers in IDEA 2020

Die Schritte zum Konfigurieren von Tomcat in IDEA...

js native Wasserfall-Flow-Plugin-Produktion

In diesem Artikel wird der spezifische Code des n...

Django2.* + Mysql5.7-Entwicklungsumgebung Integrations-Tutorial-Diagramm

Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...