shell-script gesucht...
kühni
- sonstiges
hallo zusammen,
suche ein shell-script, welches ordner nach einer best. datei rekursiv durchsucht.
Bin jetz schon dankbar für Eure hilfe...
mfG,
kühni.
hat sich gefunden...
danke trotzdem !
mfG,
kühni.
Hi kühni,
suche ein shell-script, welches ordner nach einer best. datei rekursiv durchsucht.
für's Archiv: "man find".
Viele Grüße
Michael
tagchen,
für's Archiv: "man find".
und ergänzend: "man grep" - meines Erachtens ist grep mächtiger, wenn auch villeicht etwas schwerer zu lernen.
Grüße aus Berlin
Christoph S.
Moin,
und ergänzend: "man grep" - meines Erachtens ist grep mächtiger, wenn auch villeicht etwas schwerer zu lernen.
...und noch dazu völlig ungeeignet um eine Datei nach ihrem Namen zu suchen. Naja, man könnte
find startverzeichnis | grep name
machen ;-)
Und weiter für's Archiv: Wenn man Dateien nach Namen im gesamten Dateisystem oder einem größeren Baum suchen will, ist locate wesentlich besser geeignet. Das hält nämlich eine Datenbank mit allen Dateien vorrätig und kann darin wesentlich schneller suchen. Eventuell muß man einmal mit
updatedb (als root)
die Datenbank auf den aktuellen Stand bringen, wenn man - so wie ich - den von vielen Distributionen eingerichteten cron-Job der das automatisch macht abgestellt hat, weil er viel zu nervig ist, und eine Datei sucht welche nach der letzten Aktualisierung erstellt wurde.
Hi Henryk Plötz,
Naja, man könnte
find startverzeichnis | grep name
machen ;-)
"find" hat einen Parameter "-exec", mit dem man ein Kommando auf den jeweiligen Treffer anwenden kann (den man dann mit der Zeichenfolge "{}" innerhalb des Kommandos notiert).
Dieses per "exec" ausgeführte Kommando setzt sogar einen Returncode, in Abhängigkeit von welchem nachfolgende Klauseln ausgeführt werden. Du kannst also sagen:
find . -exec grep 'zeichenkette' {} ; -exec cp {} /tmp ; -print
und kopierst damit alle Dateien, die 'zeichenkette' enthalten, nach /tmp und erhältst eine Liste aller kopierten Dateien nach stdout. Und das alles ohne jede Pipe!
Wenn man Dateien nach Namen im gesamten Dateisystem oder einem größeren Baum suchen will, ist locate wesentlich besser geeignet.
/export/home/ms (ms/TKschwarz) locate
locate: Command not found
/export/home/ms (ms/TKschwarz) uname -a
SunOS TKschwarz 5.7 Generic_106541-12 sun4u sparc SUNW,Ultra-2
/export/home/ms (ms/TKschwarz)
Scheint also nicht wirklich auf jedem UNIX zu existieren ...
Viele Grüße
Michael
Moin,
Scheint also nicht wirklich auf jedem UNIX zu existieren ...
Bloß weil du es nicht installiert hast, heisst das noch lange nicht, dass es nicht existiert:
tango ploetz 1 ( ploetz ) $ locate
Usage: locate [-d path] [--database=path] [--version] [--help] pattern...
tango ploetz 2 ( ploetz ) $ uname -a
SunOS tango 5.6 Generic_105181-33 sun4u sparc
tango ploetz 3 ( ploetz ) $
;-)
Hi Henryk,
Scheint also nicht wirklich auf jedem UNIX zu existieren ...
Bloß weil du es nicht installiert hast, heisst das noch lange nicht, dass es nicht existiert:
doch, genau das heißt es. (Ein Gegenbeispiel reicht, um die allgemeine Behauptung zu widerlegen.)
Viele Grüße
Michael
(der dieses Betriebssystem natürlich _nicht_ selbst installiert hat)