Dateien im Terminal finden?

S

smartiez02

Hi NG,

kämpfe schon einige Zeit mit dem Befehl "find" im Terminalmodus rum. Möchte einfach eine Datei z.B. die Datei "Firewall.conf" oder "Telefonnummern.xls" in der Shell unter Eingabe des Befehls "find" finden. Diese Dateien gibts und nach der Eingabe des Befehls z.B. find / Firewall.conf wird auch nach dieser Datei gesucht, nur das Ergebnis ist immer " no such file or directory"!! Dies blaubt auch nach dem Einloggen als root!

Weis jemand Rat?
 

raynor

Mitglied
Mitglied seit
14.02.2002
Beiträge
398
hi smartiez02,

hmm..., sitze am 9er OS und bin vergesslich, aber alles zum find-befehl solltest du finden, wenn du dich als
root einloggst (zur sicherheit weil sonst viele system-dateien nicht angezeigt werden), dann im prompt den
befehl man eingibst und den befehl, über den du etwas wissen möchtest, also man find und bestätigen.
dann kommst du in ein online-handbuch, im beispiel direkt zu "was du schon immer über find wissen wolltest".
blättern kannst du mit der leertaste, raus kommst du mit q
da wird wahrscheinlich viel von pfaden die rede sein, wenn du im prompt bist, dann sollte er dir immer in
eckigen klammern anzeigen, wo du dich gerade befindest (pfad des aktuellen verzeichnisses).

gilt für alle befehle, anfangsbuchstabe reicht, dann übersicht aller befehle die mit dem buchst. beginnen.

erleichterung bringt "ManOpen-2.2" (freeware).

so, jetzt den grill anwerfen - auch nicht so ohne :)

HTH

grüsse
vom
raynor
 

bexxx

Mitglied
Mitglied seit
19.04.2002
Beiträge
55
Ahoi :)

find ist zwar schon ein recht mächtiges Ding, aber wenn man nur eben wissen will, wo eine Datei liegt, sollte man die Kombination updatedb und locate benutzen. locate sucht nicht dynamisch die Platten durch, sondern nur eine indizierte Datenbank, die per /usr/libexec/locate.updatedb angelegt/aktualisiert wird. Das hat den Vorteil SEHR schnell zu sein, allerdings findet man keine Dateien, die nach dem letzten update der db angelegt/verschoben/... wurden.

Datenbank anlegen/aktualisieren:
/usr/libexec/locate.updatedb

suchen von Dateien:
locate myfile.txt (z.B.)

Ich hoffe das hilft Dir erstmal weiter,
bexxx
 
S

smartiez02

Danke für Dein TIP, klappt SUPER mit "locate". Doch das Problem mit dem Befehl "find" hab ich trotzdem noch. Es geht mir eigentlich nur ums Prinzip. Möchte einfach dahinterkommen, wieso der Befehl "find" eine Datei, die existriert, nicht findet. Aber nochmals Danke für Eure Tips!

MFG smartiez02
 

bexxx

Mitglied
Mitglied seit
19.04.2002
Beiträge
55
Hi,

dann versuche mal
find . -name "*.xls"
das findet Dir alle xls Dateien in dem aktuellen und jedem subdirectory.
Willst Du die gannze Platte durchsuchen ersetze das aktuelle durch das root directory, also
find / -name "*.xls"

Du musst erst sagen, wo er suchen soll, dann sagen, was er finden soll.

Das sollte Deine Frage dann direkt beantwortet haben.

Schönen Abend noch,
bexxx
 

IceHouse

Mitglied
Mitglied seit
03.06.2002
Beiträge
691
find deluxe

Original geschrieben von bexxx
Hi,

dann versuche mal
find . -name "*.xls"
das findet Dir alle xls Dateien in dem aktuellen und jedem subdirectory.
Willst Du die gannze Platte durchsuchen ersetze das aktuelle durch das root directory, also
find / -name "*.xls"
Moin,

auch nett ist z.B. folgendes:

Ich stehe in meinem HOME Verzeichnis, und wie bexxx ja schon erklaert hat, gibt der Punkt an, das Du im aktuellen Verzeichnis rekursiv suchen moechtest. Wir suchen aber mit meinem String ALLES und dann wird das ganze mit dem | Zeichen gepiped (so nennt man das) und zwar auf den Befehl grep. Das "-i" bewirkt, das der Name in all seinen Formen gesucht wird, es werden also keine Gross- oder Kleinbuchstaben beruecksichtigt.

Das ist sehr nutzlich, wenn man nicht weiss, wie die Datei geschrieben wird, man aber den Namen oder einen Namensbestandteil weiss :)

[21:28] % sudo find . * | grep -i gnupg
Password:
./.gnupg
./.gnupg/options
./.gnupg/pubring.gpg
./.gnupg/pubring.gpg~
./.gnupg/random_seed
./.gnupg/secring.gpg
./.gnupg/trustdb.gpg
./gnupg.tar.gz
gnupg.tar.gz

Dann viel Spass beim suchen.

Gruss
IceHouse
 

Benedikt

Neues Mitglied
Mitglied seit
01.08.2002
Beiträge
6
falls

find | grep xxx mal net geht dann nicht wundern. geh al root in die shell und gib "updatedb" ein dann funzt es.
 

bexxx

Mitglied
Mitglied seit
19.04.2002
Beiträge
55
wobei das beim mac anders gestartet wird imho.

/usr/libexec/locate.updatedb

man updatedb klappt aber trotzdem :)

bexxx
 

Maurus

Mitglied
Mitglied seit
01.10.2002
Beiträge
293
hallo!
hab da auch noch ne frage :D
weiss jemand wie ich find dazu bringen kann keine Prgramm-bundles zu durchsuchen?
Also ich meine das es z.B nicht die sprachdateien eines programms im Ergebniss zeigt.

das gleiche Problem habe ich bei Locate, kann ich das script welches die db aktualisiert daran hindern diese ordner zu indizieren, oder gibt es eine option in locate dazu?

schon mal danke für die hilfe!
gruss Maurus
 

charlie

Neues Mitglied
Mitglied seit
05.01.2003
Beiträge
21
find Befehl

Hallo smartiez02,

ich bin zwar absoluter Mac Neuling aber ....

Versuch es mal mit:

find / -name *.xls -print

Ich habe eine ähnliche Antwort schon gelesen. Nur sollte man noch die Option -print angeben, weil sonst keine Ausgabe auf dem Bildschirm stattfindet.
 
Oben