Hallo,
gegeben ist eine Verzeichnisstruktur vergleichbar diesem Muster
/A/B
/A/B/C
/B/F/G/J
Lasse ich mir die mit find -type d ausgeben, bekomme ich dieses Ergebnis
/A
/A/B
/A/B/C
Im Prinzip völlig korrekt, da ja drei Verzeichnisse in der Reihe vorhanden sind. Ich möchte aber, dass nur die Zeile mit allen Verzeichnissen ausgegeben wird, nicht aber auch die vorherigen Verzeichnisse extra.
Wie lässt sich das in einem bash-script bewerkstelligen?
Edit: Präzisierung
[solved] Nur kompletten Pfad ausgeben?
[solved] Nur kompletten Pfad ausgeben?
Zuletzt geändert von outis am 29.09.2020 10:09:05, insgesamt 1-mal geändert.
LG
Jochen
Jochen
Re: Nur den Namen des letzten Verzeichnisses ausgeben?
Die find-Ausgabe legt nahe, dass J kein Verzeichnis, sondern wahrscheinlich eine reguläre Datei ist. Das widerspricht der Frage im Threadtitel.
Willst du J mit augegeben haben, dann sollte das funktionieren:
Möchtest du J nicht haben, dann musst du find anweisen, nur nach Verzeichnissen zu suchen, wie du es bereits getan hast.
Willst du J mit augegeben haben, dann sollte das funktionieren:
Code: Alles auswählen
find / | egrep -o '[^/]+$'
Re: Nur kompletten Pfad ausgeben?
Sorry, ich habe mich ungenau ausgedrückt:
Das hier:
Für die Zeile mit J gäbe es ja von find:
/B
/B/F
/B/F/G
/B/F/G/J
Ich möchte aber im script nur die kompletten Pfade weiterverarbeiten, also die im ersten Beitrag als Beispiel genannten Zeilen.
Das hier:
ist nur die find-Ausgabe für die zweite Zeile des Beitrags #1.Lasse ich mir die mit find -type d ausgeben, bekomme ich dieses Ergebnis
/A
/A/B
/A/B/C
Für die Zeile mit J gäbe es ja von find:
/B
/B/F
/B/F/G
/B/F/G/J
Ich möchte aber im script nur die kompletten Pfade weiterverarbeiten, also die im ersten Beitrag als Beispiel genannten Zeilen.
LG
Jochen
Jochen
Re: Nur kompletten Pfad ausgeben?
Vielleicht hilft noch ein Hinweis auf das Vorhaben:
Ich möchte den kompletten Verzeichnispfad haben, um den in eine Datenbank zu schreiben. Nur in dem jeweils untersten Verzeichnis sind Dateien, also z.B. in J. In den darüberliegenden Verzeichnissen B, F, G sind aber keine Dateien. Weswegen es unnötig ist, die alle einzeln in die Datenbank zu schreiben.
Ich möchte den kompletten Verzeichnispfad haben, um den in eine Datenbank zu schreiben. Nur in dem jeweils untersten Verzeichnis sind Dateien, also z.B. in J. In den darüberliegenden Verzeichnissen B, F, G sind aber keine Dateien. Weswegen es unnötig ist, die alle einzeln in die Datenbank zu schreiben.
LG
Jochen
Jochen
Re: Nur kompletten Pfad ausgeben?
Ah, das sieht gut aus:
Code: Alles auswählen
find -type d -links 2
LG
Jochen
Jochen
- weedy
- Beiträge: 585
- Registriert: 02.11.2002 21:47:49
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Nur kompletten Pfad ausgeben?
Für komplette Pfade gehst Du zuvor in das rootverzeichnis.outis hat geschrieben:29.09.2020 08:37:30Sorry, ich habe mich ungenau ausgedrückt:
Das hier:ist nur die find-Ausgabe für die zweite Zeile des Beitrags #1.Lasse ich mir die mit find -type d ausgeben, bekomme ich dieses Ergebnis
/A
/A/B
/A/B/C
Für die Zeile mit J gäbe es ja von find:
/B
/B/F
/B/F/G
/B/F/G/J
Ich möchte aber im script nur die kompletten Pfade weiterverarbeiten, also die im ersten Beitrag als Beispiel genannten Zeilen.
$ find /bin/ls /etc/apt-cacher-ng
/bin/ls
/etc/apt-cacher-ng
/etc/apt-cacher-ng/backends_ubuntu
/etc/apt-cacher-ng/zz_debconf.conf
/etc/apt-cacher-ng/backends_debvol
/etc/apt-cacher-ng/acng.conf
/etc/apt-cacher-ng/security.conf
/etc/apt-cacher-ng/backends_ubuntu.default
/etc/apt-cacher-ng/backends_debian.default
/etc/apt-cacher-ng/backends_gentoo.default
/etc/apt-cacher-ng/backends_debian
$ find /bin/ls /etc/apt-cacher-ng -type d
/etc/apt-cacher-ng
Gruß