Jan Trippler schrieb:
On Mit, 16 Apr 2003 at 17:53 (+0200), Thomas Michalka wrote:
for file in `ls /pfad/*`; do cat $file | mail mail@irgendwo.tld done
*Useless use of ls award* ;-) for file in /pfad/*; do cat $file | mail mail@irgendwo.tld done
Klar, die Shell expandiert * u.ä. ja ;-)
MAn beachte auch hier wieder das Dilemma, wenn Dateien z. B. Leerzeichen beinhalten.
Eventuell kann es etwas anders sein, wenn Du nicht jede Datei in diesem Verzeichnis versenden willst. Dann müßtest Du Dir eine Dateiliste on the fly bauen, z.B. mit find:
find /pfad -type f -name
\ -exec mail mail@irgendwo.tld "{}" ";" Vielleicht muß man zwischen - exec und mail noch ein xargs einbauen, das weiß ich jetzt nicht so genau.
Ein exec ist Bestandteil des find, da kommt kein xargs dazwischen. man find man xargs
Stimmt, wenn, dann xargs ohne -exec in find. Allerdings könnte es auch funktionieren, wenn xargs halt nur eine Datei und keine echte Liste als Argument bekommt. Das wäre dann ein Fall für den *Useless use of xargs award* ;-) Ich hatte mal einen recht subtilen Fall, da war mit -exec in find einfach nichts zu machen. Mittels xargs funktionierte es dann. Leider erinnere ich mich nicht mehr genauer daran.
Außerdem wird das wohl schiefgehen, weil Du im Gegensatz zum obigen Beispiel den Dateinamen als Argument an mail übergibst, nicht den Inhalt per Pipe an mail schickst.
Auch klar. Ich hatte eine Eingabeumleitung vergessen. Damit liest mail
von der angegebenen Datei. Damit dürften sogar Leerzeichen im
Dateinamen nichts mehr ausmachen, oder?
Also:
find /pfad -type f -name
Quick & Dirty; find /pfad -type f -name suchmuster -print | while read f; do cat "$f" | mail mail@adresse.tld done
So geht's natürlich auch - wie man sieht, führen viele Wege nach Rom :-)
Jan
Gruß, Thomas