Seite 1 von 1

suche Dateinamen und Ordner -> scheitere schon bei -iname

Verfasst: Dienstag 10. März 2009, 10:20
von shadow07
hallo Profis,

obwohl ich hier zum Thema suchen/finden eine ganze Menge Beiträge gelesen habe, hänge ich schon am Anfang fest:

Code: Alles auswählen

find / - name "*Test*."
funktioniert,

Code: Alles auswählen

find / - iname "*test*."
geht nicht, -iname wird als nicht vorhanden mit error beendet
(os.Walk usw. steht nicht zur Verfügung)

Ziel:
ich möchte mit einem Teilstring eine Liste aller Ordner und Dateien erstellen, welche den Teilstring enthalten

Verfasst: Dienstag 10. März 2009, 10:56
von helduel
Moin,

lass das Leerzeichen zwischen - und name/iname weg.

Gruß,
Manuel

Verfasst: Dienstag 10. März 2009, 11:20
von shadow07
danke für den Hilfsversuch, das leerzeichen ist mir aber nur hier beim schreiben passiert, original kopiert aus der Konsole:

Code: Alles auswählen

find /autofs/M1 -iname "*Cinema*.mp3"

Verfasst: Dienstag 10. März 2009, 11:39
von b.esser-wisser
Zwei kleine Fragen :
Warum fragst du im "Allgemeine-Python-Fragen Forum" nach Shell Befehlen ?
Warum postest du keine
- Fehlermeldungen?
- Systeminformationen (Dass dieser "find"-Befehl z.B. unter Windows funktioniert, ist zumindest unwahrscheinlich)?

Wenn du es tatsächlich in Python lösen willst (warum ohne os.walk (kleingeschrieben)?), wirst du wohl os.walk und glob.glob nachbauen müssen (Schau evtl. mal ins Python-Cookbook).

hth, Jörg

Verfasst: Dienstag 10. März 2009, 12:15
von shadow07
zu1) nun ja, es soll ein Python-script werden, sorry (notfalls bitte verschieben)

zu 2) weil es keine gibt:

Code: Alles auswählen

EXPRESSION may consist of:
	-follow		Dereference symbolic links.
	-name PATTERN	File name (leading directories removed) matches PATTERN.
	-print		Print (default and assumed).
	-type X		Filetype matches X (where X is one of: f,d,l,b,c,...)
	-perm PERMS	Permissions match any of (+NNN); all of (-NNN);
			or exactly (NNN)
	-mtime TIME	Modified time is greater than (+N); less than (-N);
			or exactly (N) days
	-newer FILE	Modified time is more recent than FILE's
	-inum N		File has inode number N
nun ja, ist ein Linux-Ableger (DB)

vielleicht klärt mich ja mal bitte einer auf: gibt es denn nicht grundsätzliche, allgemeingültige Befehle, mit denen man auf allen Linux-Ablegern gleichermaßen arbeiten kann?

Verfasst: Dienstag 10. März 2009, 12:33
von b.esser-wisser
In deinem listing steht nur "-name", d.h evtl. reicht folgendes:

Code: Alles auswählen

find /autofs/M1 -name "*inema*.mp3"
Sonst frag' die Docu ("man find"). Aber wenn es nicht implementiert ist, geht es eben nicht.

Ist das ein Embedded-Linux (auf einem Router, NAS etc)? Dann ist es natürlich besonders wahrscheinlich, dass das nicht geht.

hth, Jörg

Verfasst: Dienstag 10. März 2009, 12:42
von shadow07
Ist das ein Embedded-Linux
ja - und nach der Antwort bin ich einigermaßen erschüttert

das bedeutet dann ja tatsächlich, ich kann z.B. zwar googeln wie ich suche, finde find, erlese mir die Syntax und am Ende ist es unnütz, weil es sowieso nicht allgemeingültig ist. Mal im Ernst, wie soll man denn da seine ersten Gehversuche mit Linux machen?

Verfasst: Dienstag 10. März 2009, 12:46
von Rebecca

Code: Alles auswählen

find /autofs/M1 -name "*[cC]inema*.mp3"

Verfasst: Dienstag 10. März 2009, 12:53
von Rebecca
shadow07 hat geschrieben:das bedeutet dann ja tatsächlich, ich kann z.B. zwar googeln wie ich suche, finde find, erlese mir die Syntax und am Ende ist es unnütz, weil es sowieso nicht allgemeingültig ist. Mal im Ernst, wie soll man denn da seine ersten Gehversuche mit Linux machen?
Naja, den Befehl hast du schon gefunden, und dann gibt's ja normalerweise immer eine Hilfeausgabe (die du ja auch gepostet hast) und eine man-Page.

Ein Embedded-Linux ist nun mal ein Spezialfall, das meiste, was du im Netz findest, bezieht sich auf Desktop- oder Serverinstallationen.

Und zu guter letzt: Linux ist ja genau genommen nur der Kernel, die ganzen Programme dazu gehoeren erstmal nicht dazu. Bei "normalen" Linux-Distrubutionen haben sich da die GNU-Sachen eingebuergert (GNU find z.B. mit dem Parameter -iname), aber auf Embedded-Systemen gibt es mehr Spezialloesungen, um mit den speziellen Bedingungen klar zu kommen (Speicherbedarf, Rechenleistung) etc, da kannst du normalerweise keine komplette Standard-Linux-Distrubution unterbringen.

Edit: Jetzt ist es mir auch passiert, Standard mit d zu schreiben :oops:

Verfasst: Dienstag 10. März 2009, 13:01
von Leonidas
shadow07 hat geschrieben:das bedeutet dann ja tatsächlich, ich kann z.B. zwar googeln wie ich suche, finde find, erlese mir die Syntax und am Ende ist es unnütz, weil es sowieso nicht allgemeingültig ist. Mal im Ernst, wie soll man denn da seine ersten Gehversuche mit Linux machen?
Wunderst du dich auch wenn du feststellst, dass die Windows XP Dokumentation nicht auf Windows 3.11 zutrifft‽

Wie man die ersten Gehversuche machen soll: indem man die passende Dokumentation liest. Nicht irgendeine Dokumentation.

Verfasst: Dienstag 10. März 2009, 13:12
von b.esser-wisser
Mal im Ernst, wie soll man denn da seine ersten Gehversuche mit Linux machen?
Mit einer Desktop Live-CD/DVD, und der richtigen Documentation - alle Linux-Distros haben Homepages und spätestestens da gibts alles wichtige zu lesen.

hth, Jörg

Verfasst: Dienstag 10. März 2009, 15:47
von shadow07
alle Linux-Distros haben Homepages und spätestestens da gibts alles wichtige zu lesen.
nö, leider nicht - sonst würde ich hier nicht zum zweiten Thema völlig ahnungslos daran rumknobeln - ich wäre sehr froh wenn ich eine anständige Quelle für dergleichen Infos hätte

aber die Antworten haben mir dennoch weitergeholfen, denn ich habe jetzt kapiert das ich derlei Grund-Informationen benötige und eben keine allgemeingültigen Vorgehensweisen möglich sind.

Verfasst: Dienstag 10. März 2009, 16:28
von cofi
shadow07 hat geschrieben:aber die Antworten haben mir dennoch weitergeholfen, denn ich habe jetzt kapiert das ich derlei Grund-Informationen benötige und eben keine allgemeingültigen Vorgehensweisen möglich sind.
Die gibt es schon. Allerdings steht es jeder Distribution frei, aus welchen Gründen auch immer, sich dagegen zu entscheiden.
Wenn etwas nicht klappt, die Manpage konsultieren -> `man $programm'