Aqua: => (LINUX) => Verzeichniss-Inhalte gegenchecken

Hallo!

Ich habe 2 Verzeichnise.  Eines der beiden Verzeichnisse
war ursprünglich vor vielen Jahren mal die Sicherheitskopie des
anderen Verzeichnisses.
Das eine heisst  "foo1"  und das andere "foo2".

Wobei nicht klar ist ob foo1  oder foo2  die kopie des anderen ist.

Beide Verzeichnisse haben viele Unterverzeichnisse
mit vielen anderen Unterverzeichnissen und Dateien.

Ich will herausfinden,  wo die Unterschiede liegen.

Also in welchen Verzeichnissen welche Dateien nicht vorhanden sind,
die im anderen vorhanden sind.

Ein zippen und checksum faellt flach,
weil ich dann ja nicht wüsste,
welche Datei es in einem der beiden Verzeichnisse gibt
die es im anderen nicht gibt.

Es sollte so sein,
dass ich in einer Art liste sehe welche Dateien in einem der beiden Verzeichnisse
vorhanden sind,  die im anderen Verzeichnis nicht da sind.

Wie gesagt kann es sein dass ich in "foo1" oder auch in "foo2"  mehr
Dateien drinnen sind.

Danke für jedwege Hilfe!
Euer Aqua

  1. re

    Detlef sagte mir im Chat gerade ich soll noch dazuschreiben:

    1. OS ist Linux Debian
    2. Ich frage nach der Möglichkeit eine Liste auszugeben
         im Stil von:

    Folgende Dateien sind in "foo1" vorhanden und in "foo2" nicht:

    () ./bleh.txt
             () ./blablubb.abc
             () ./dsfdsf.doc

    LG
    Aqua

    1. Hello,

      Detlef sagte mir im Chat gerade ich soll noch dazuschreiben:

      1. OS ist Linux Debian
      2. Ich frage nach der Möglichkeit eine Liste auszugeben
           im Stil von:

      Folgende Dateien sind in "foo1" vorhanden und in "foo2" nicht:

      () ./bleh.txt
               () ./blablubb.abc
               () ./dsfdsf.doc

      Da hilft nur ein Script, denn cmp scheint von Haus aus nicht rekursiv zu arbeiten.
      Man muss ja auch einmal das eine gegen das andere und dann das andere gegen das eine Verzeichnis (nebst Unterverzeichnissen) abgleichen, um die Nicht-Schnittmengen zu ermitteln.

      Vergleichen braucht man dann nur die Schnittmenge. Logisch, oder? *gg*

      In PHP gibt es die wunderbare Funktion glob(), die Dir schonmal die beiden Verzeichnisinhalte besorgt, ganz ohne Mühe. In der Shell geht das bestimmt auch zu programmieren.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi Tom,

        Detlef sagte mir im Chat gerade ich soll noch dazuschreiben:

        1. OS ist Linux Debian
        2. Ich frage nach der Möglichkeit eine Liste auszugeben
             im Stil von:

        Folgende Dateien sind in "foo1" vorhanden und in "foo2" nicht:

        () ./bleh.txt
                 () ./blablubb.abc
                 () ./dsfdsf.doc

        Da hilft nur ein Script, denn cmp scheint von Haus aus nicht rekursiv zu arbeiten.

        Jein, ls kann rekursiv arbeiten. Und mehr brauchen wir garnicht.

        Man muss ja auch einmal das eine gegen das andere und dann das andere gegen das eine Verzeichnis (nebst Unterverzeichnissen) abgleichen, um die Nicht-Schnittmengen zu ermitteln.

        Richtig.

        Vergleichen braucht man dann nur die Schnittmenge. Logisch, oder? *gg*

        Das ist ganz egal, wenn man einen Geeigneten Algorithmus hat, der 0==0 und 1==1 rausfiltert.

        In PHP gibt es die wunderbare Funktion glob(), die Dir schonmal die beiden Verzeichnisinhalte besorgt, ganz ohne Mühe. In der Shell geht das bestimmt auch zu programmieren.

        ls -la -R foo1 > foo1.diff;ls -la -R foo2 > foo2.diff;diff foo1.diff foo2.diff | less;rm *.diff

        Grüße aus Barsinghausen,
        Fabian

        --
        "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
        1. Hallo,

          Folgende Dateien sind in "foo1" vorhanden und in "foo2" nicht:

          () ./bleh.txt
                   () ./blablubb.abc
                   () ./dsfdsf.doc

          Ich wuerde dafuer das wunderschoene Programm unison empfehlen:
          http://www.cis.upenn.edu/~bcpierce/unison/
          Sogar mir grafischer Oberflaeche.

          Viele Gruesse,
          Gero

          1. Hi,

            Ich wuerde dafuer das wunderschoene Programm unison empfehlen:
            http://www.cis.upenn.edu/~bcpierce/unison/
            Sogar mir grafischer Oberflaeche.

            Das zerstört die Ästhetik der Kommandozeile ;-)

            Grüße aus Barsinghausen,
            Fabian

            --
            "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>
            1. Tach,

              Das zerstört die Ästhetik der Kommandozeile ;-)

              Ja nee, geht ja auch auf der Kommandozeile. Sonst wuerde ich es doch niemals als "wunderschoen" bezeichnen ;)

              Viele Gruesse,
              Gero mit alias emacs='emacs -nw'

              1. Hi,

                Das zerstört die Ästhetik der Kommandozeile ;-)

                Ja nee, geht ja auch auf der Kommandozeile. Sonst wuerde ich es doch niemals als "wunderschoen" bezeichnen ;)

                Naja... das will ich dann mal gelten lassen ;-)

                Grüße aus Barsinghausen,
                Fabian

                --
                "It's easier not to be wise" - < http://www.fabian-transchel.de/kultur/philosophie/ialone/>