So finden Sie die Verzeichnisstruktur in Linux

So finden Sie die Verzeichnisstruktur in Linux

Ich suche nach einem Linux-Befehl zum RHEL v6.xDurchsuchen einer bestimmten Verzeichnisstruktur im aktuellen Verzeichnis.

Ich kenne jedoch den folgenden Befehl, der ein bestimmtes einzelnes Verzeichnis im aktuellen Verzeichnis durchsucht. Er funktioniert für ein einzelnes Verzeichnis, aber nicht für die Verzeichnisstruktur.

Funktioniert:

find /home/dir1/* -name "def"


Funktioniert nicht:

find /home/dir1/* -name "abc/def"

Ich habe auch den folgenden Befehl ausprobiert, aber er listet auch die Dateien in diesem Verzeichnis auf. Ich möchte aber nicht die Dateien in diesem Verzeichnis auflisten. Ich möchte nur den vollständigen Pfad aller Verzeichnisse auflisten, die diese abc/defVerzeichnisstruktur haben.

locate abc/def/

Kann mir bitte jemand helfen.

Dank im Voraus.

Antwort1

Der -nameTest stimmt nur mit der letzten Pfadkomponente überein. Um etwas wie abc/defdas zu finden, benötigen Sie -path:

$ mkdir -p somedir/otherdir/abc/def/ghi
$ find somedir -path '*/abc/def'
somedir/otherdir/abc/def

Antwort2

Wie wäre es damit.

find /home/dir1/ -type d | grep 'abc/def'

oder wenn Sie Verzeichnisse nur bis zu einer bestimmten Tiefe auflisten möchten.

find /home/dir1/ -maxdepth 2 -type d | grep 'abc/def'

-d - directory

-maxdepth levels of directories below the starting-points.

Antwort3

tree <base dir>
       -L level
             Max display depth of the directory tree.
       -P pattern
              List  only those files that match the wild-card pattern.

verwandte Informationen