Recursive suche mit filtern.

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
smack9898
Beiträge: 48
Registriert: 16.12.2018 10:52:34

Recursive suche mit filtern.

Beitrag von smack9898 » 21.01.2021 12:40:35

Hallo Community,

Ich hab mal ein Frage wie man besser Recursiv suchen kann.
Mit den normalen

Code: Alles auswählen

ls -l -R
wird ja das gesammte Dateisysem durchsucht.
Aber wie müste man diesen Befehl anpassen wenn man. Bloß innerhalb eines bestimmten Ordner suchen möchte?
Also zum beispiel den 'home' Ordner ?
Ausserdem wie könnte man das noch nur bestimme endungen zum beispiel .txt herraus filtern.?

Thx, smack9898

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Recursive suche mit filtern.

Beitrag von Meillo » 21.01.2021 13:05:48

Der Befehl, so wie du ihn hingeschrieben hast, sucht nur rekursiv unter dem aktuellen Arbeitsverzeichnis. Wenn du ihn in deinem Home-Verzeichnis startest, sucht er nur dort. ... wobei er gar nicht *sucht*, sondern *auflistet*.

Du solltest dir mal `find' anschauen. Damit kannst du in der gewuenschten Art suchen, z.B.:

Code: Alles auswählen

find ~ -type f -name '*.txt'
Use ed once in a while!

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Recursive suche mit filtern.

Beitrag von MSfree » 21.01.2021 13:13:15

smack9898 hat geschrieben: ↑ zum Beitrag ↑
21.01.2021 12:40:35
Mit den normalen

Code: Alles auswählen

ls -l -R
wird ja das gesammte Dateisysem durchsucht.
Nein, es wird der Verzeichnisbaum ab dem aktuellen Verzeichnis gelistet (nicht durchsucht). Um das ganze System zu listen, müßtest du

Code: Alles auswählen

ls -l -R /
eingeben.
Aber wie müste man diesen Befehl anpassen wenn man. Bloß innerhalb eines bestimmten Ordner suchen möchte?
Also zum beispiel den 'home' Ordner ?
Ausserdem wie könnte man das noch nur bestimme endungen zum beispiel .txt herraus filtern.?

Code: Alles auswählen

man find
und dein Beispiel würde mit

Code: Alles auswählen

find /home -name \*.txt
gehen.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Recursive suche mit filtern.

Beitrag von Meillo » 21.01.2021 13:49:41

@MSfree: :THX: (Das ist ja fast wie die Geschichte von Ken Thompson und Dennis Ritchie, die eines Tages beide zufaellig die gleiche Funktion implementiert haben, unabhaengig voneinander, und am Ende waren die Implementierungen Zeichen fuer Zeichen identisch. ;-) )
Use ed once in a while!

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Recursive suche mit filtern.

Beitrag von thoerb » 21.01.2021 14:02:41

OT:
Meillo hat geschrieben: ↑ zum Beitrag ↑
21.01.2021 13:49:41
@MSfree: :THX: (Das ist ja fast wie die Geschichte von Ken Thompson und Dennis Ritchie, die eines Tages beide zufaellig die gleiche Funktion implementiert haben, unabhaengig voneinander, und am Ende waren die Implementierungen Zeichen fuer Zeichen identisch. ;-) )
Bei https://www.codewars.com/ kommt das eigentlich ziemlich häufig vor. Zumindest bei den einfachen Aufgaben.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Recursive suche mit filtern.

Beitrag von MSfree » 21.01.2021 14:24:46

Meillo hat geschrieben: ↑ zum Beitrag ↑
21.01.2021 13:49:41
...und am Ende waren die Implementierungen Zeichen fuer Zeichen identisch. ;-) )
Naja, ich habe "-type f" weggespart :wink: :mrgreen:

atarixle
Beiträge: 341
Registriert: 20.02.2006 19:30:37

Re: Recursive suche mit filtern.

Beitrag von atarixle » 21.01.2021 14:56:01

Statt -name kannst du auch -iname verwenden, um Groß-/Kleinschrift zu ignorieren.

Antworten