GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So vergleichen Sie Unterschiede zwischen Verzeichnissen (Linux)

Lösung 1:

Aus der man-Seite von diff:

Wenn sowohl from-file als auch to-file Verzeichnisse sind, vergleicht diff entsprechende Dateien in beiden Verzeichnissen in alphabetischer Reihenfolge; dieser Vergleich ist nicht rekursiv, es sei denn, die Option -r oder --recursive ist angegeben. diff vergleicht niemals den tatsächlichen Inhalt eines Verzeichnisses, als wäre es eine Datei. Die vollständig angegebene Datei ist möglicherweise keine Standardeingabe, da die Standardeingabe namenlos ist und der Begriff „Datei mit demselben Namen“ nicht zutrifft.

Also Verzeichnisse vergleichen:diff --brief -r dir1 dir2

Um Dateien nebeneinander zu vergleichen:diff --side-by-side file1 file2

Lösung 2:

Angenommen:

  • wir sind am www1 , verglichen mit entferntem www2
  • Es ist eine Authentifizierung mit öffentlichem SSH-Schlüssel vom lokalen www1 konfiguriert zum entfernten www2
  • Wir vergleichen als derselbe Benutzer auf lokalem www1 und Fernbedienung www2
find /var/www/html/ -name "*" -exec md5sum -b {} \; | grep -v "/var/www/html/exclude_this dir" > local.md5
ssh www2 "find /var/www/html/ -name '*' -exec md5sum -b {} \; | grep -v /var/www/html/exclude_this dir > remote.md5"
scp www2:remote.md5 .
diff local.md5 remote.md5 

Lösung 3:

Sie möchten wirklich die Kraft von rsync kombinieren um den Bandbreitenverbrauch mit der Leistung von diff zu reduzieren um Ihnen flexible, na ja, Unterschiede zu geben.

Also etwa so:

cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/* 
diff -wur $local $bak

Ich schätze, Sie könnten dies ein wenig optimieren, wenn Sie es häufig tun würden, indem Sie rsync verwenden statt cp in der ersten Zeile - offensichtlich haben Sie in der letzten Zeile die volle Kraft von diff zu formatieren, wie Sie möchten. Wahrscheinlich mit y im OPs-Fall

Der Nachteil dieses Ansatzes ist, dass Sie am Ende doppelt so viel lokalen Speicherplatz verbrauchen, aber für weniger als 1 $/Gigabit, wen interessiert das schon?


Linux
  1. So synchronisieren Sie lokale und entfernte Verzeichnisse in Linux

  2. So benennen Sie ein Verzeichnis unter Linux um

  3. Wie füge ich eine Remote-MySQL-Verbindung unter Linux hinzu?

  4. Wie überschleife ich Verzeichnisse in Linux?

  5. Wie listet man rekursiv Verzeichnisse in C unter Linux auf?

So benennen Sie Verzeichnisse in Linux um

So vergleichen Sie Verzeichnisse mit Meld unter Linux

So navigieren Sie unter Linux schneller durch Verzeichnisse

So vergleichen Sie Dateien unter Linux mit dem Tool Meld (Diff/Merge).

So vergleichen Sie zwei Dateien im Linux-Terminal

So listen Sie nur Verzeichnisse in Linux auf