
Ich suche nach einem Linux-Befehl zum RHEL v6.x
Durchsuchen 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/def
Verzeichnisstruktur haben.
locate abc/def/
Kann mir bitte jemand helfen.
Dank im Voraus.
Antwort1
Der -name
Test stimmt nur mit der letzten Pfadkomponente überein. Um etwas wie abc/def
das 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.