Re: Mal wieder find...
Hallo! On Andreas Schmidt wrote: On 2004.02.29 15:02, Matthias Kluwe wrote: Hierfür könnte (ohne das Problem genau zu kennen) evtl. for f in $(find . -maxdepth 1 -type f) do cat $f | formail -s procmail mv mist $f.new done eine Lösung sein. Nicht wirklich. Damit fange ich mir dasselbe Problem wieder ein, dass ich mit find umgehen wollte: Dateinamen mit Leerzeichen im Namen werden gesplittet: for f in $(find . -maxdepth 1 -type f); do echo $f; done ./header ./Debian News ./Debian User Wenn darum geht: $ for f in $(find); do echo $f; done . ./Foo Bar aber: $ find | (while read f; do echo $f; done) . ./Foo Bar Gruß, Matthias -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am 2004-02-29 11:30:21, schrieb Andreas Schmidt: Hallo, mein urspruengliches find-Problem ist zwar mittlerweile geloest worden; allerdings haenge ich jetzt wieder fest und bleibe daher gleich hier im Thread. :-) prune () { cat $1 | formail -s procmail; mv mist $1.new; }; export prune; find . -maxdepth 1 -type f -exec prune {} \; find: prune ./header: No such file or directory Datei anlegen: -- #!/bin/bash cat $1 | formail -s procmail mv mist $1.new -- aufrufen mit: find . -maxdepth 1 -type f -exec prune {} '; Und spaß haben Andreas Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.17 17:27, Michelle Konzack wrote: Am 2004-02-17 09:09:33, schrieb Andreas Schmidt: es eher so dahin. :-) Habe gerade letzte Woche meine mbox dieser Liste bereinigt; alles von Juli bis Dezember letzten Jahres separat gespeichert (uebrigens mit mutt) und gezippt. Nachdem die mbox von ca 18,000 Mails/110 MB auf ein Drittel geschrumpft ist, kann ich auch mal wieder was sortieren lassen, ohne gleich die Zwangspause mit Kaffee kaufen, kochen und trinken ausfuellen zu muessen. :-) Nimm formail und filter die Received-Header weg. Die braucht man sowieso nicht mehr. Das spart bei 18.000 Mails garantiert 25 MBytes. Habe ich vor ein paar Tagen mit meiner Workstation gemacht und 200 MByte im Maildir eingesparrt. Das hab ich mittlerweile auch hinbekommen, hat wirklich ordentlich Platz gespart. Als naechstes steht vielleicht auch noch etwas in der Art von Logrotate an, um die entsprechenden Mailboxen automatisch klein zu halten... Wo wir aber schon einmal so weit OT sind: von mutt war ich (alter elm- user) besonders wegen des message threading begeistert, und schnell ist er ja auch einigermassen. Aber wie verhaelt sich das dem Handling mehrerer Mailboxen? Bisher habe ich zum Durchsehen meiner Spamablagen immer jeden Folder per mutt -f in einer neuen Instanz geoeffnet. Sicherlich gibt es da auch einfachere Moeglichkeiten, oder? Mit 'c' wechselst Du die Mailbox und wenn Du danach ein '?' drckst, siehste alle Deine mailboxem im Verzeichnis. Aber du kannst auch 'mailboxes' verwenden... Z.B. #~/.muttrc mailboxes +INBOX +NIGSCAM +SOBER +SWEN \ +michelle +debian-user-german +mutt-users Funktioniert wunderbar, danke! Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Hallo, mein urspruengliches find-Problem ist zwar mittlerweile geloest worden; allerdings haenge ich jetzt wieder fest und bleibe daher gleich hier im Thread. :-) Mit -exec oder auch -print0 | xargs kann man ja veranlassen, dass fuer die von find gefundene Datei ein Kommando ausgefuehrt wird. Ich wollte jetzt gleich mehrere Kommandos ausfuehren; habe zwar allerlei Verrenkungen gemacht, aber irgendwie funktioniert das alles nicht so, wie ich es mir vorgestellt habe. Ist das ueberhaupt moeglich? Im konkreten Fall ging es darum, in einem Verzeichnis aus allen Mailboxen bestimmte Header zu entfernen. Ich hatte dafuer eine provisorische ~/.procmailrc angelegt (da die Mails ja schon sortiert waren, konnten die sonst faelligen Filter entfallen) : :0f | formail -f -I Received: -I Envelope-to: -I Delivered-To: :0 mist Ich wollte jetzt fuer jede gefundene Mailbox procmail aufrufen und die Datei mist umbenennen: find . -maxdepth 1 -type f -exec cat {} | formail -s procmail; mv mist {}.new \; Hier gibt es dann die Fehlermeldung: find: cat ./header | formail -s procmail; mv mist ./header.new: No such file or directory find . -maxdepth 1 -type f -exec cat \{\} | formail -s procmail; mv mist \{\}.new \; ergibt find: missing argument to `-exec' mv: missing file argument Auch nach bash-Regeln gueltige Listenkonstrukte funktionieren nicht: find . -maxdepth 1 -type f -exec { cat {} | formail -s procmail; mv mist {}.new; } \; bash: syntax error near unexpected token `}' Und find . -maxdepth 1 -type f -exec \{ cat {} | formail -s procmail; mv mist {}.new; \} \; find: missing argument to `-exec' mv: cannot stat `mist': No such file or directory bash: }: command not found Sowie: find . -maxdepth 1 -type f -exec { cat {} | formail -s procmail; mv mist {}.new; } \; find: { cat ./header | formail -s procmail; mv mist ./header.new; }: No such file or directory Darauf habe ich dann eine Shell-Funktion definiert: prune() { cat $1 | formail -s procmail mv mist $1.new } Der Aufruf dieser Funktion aus find funktioniert nicht: find . -maxdepth 1 -type f -exec prune {} \; find: prune: No such file or directory Das liegt wohl daran, dass -exec eine eigene Shell oeffnet, in der prune nicht definiert ist. Also im naechsten Schritt: prune () { cat $1 | formail -s procmail; mv mist $1.new; }; export prune; find . -maxdepth 1 -type f -exec prune {} \; find: prune ./header: No such file or directory Jetzt bin ich mit meinem Latein am Ende und dankbar fuer jeden Hinweis. :-) Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Hallo! On ? Andreas Schmidt wrote: [...] Ich wollte jetzt fuer jede gefundene Mailbox procmail aufrufen und die Datei mist umbenennen: find . -maxdepth 1 -type f -exec cat {} | formail -s procmail; mv mist {}.new \; Hierfür könnte (ohne das Problem genau zu kennen) evtl. for f in $(find . -maxdepth 1 -type f) do cat $f | formail -s procmail mv mist $f.new done eine Lösung sein. Gruß, Matthias -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am Sonntag, 29. Februar 2004 11:30 schrieb Andreas Schmidt: [...] Im konkreten Fall ging es darum, in einem Verzeichnis aus allen Mailboxen bestimmte Header zu entfernen. Ich hatte dafuer eine provisorische ~/.procmailrc angelegt (da die Mails ja schon sortiert waren, konnten die sonst faelligen Filter entfallen) : :0f : | formail -f -I Received: -I Envelope-to: -I Delivered-To: | :0 mist Das schiebt die Mails doch in ein Postfach mist - und der liegt im Verzeichnis $MAIL, oder? Ich wollte jetzt fuer jede gefundene Mailbox procmail aufrufen und die Datei mist umbenennen: find . -maxdepth 1 -type f -exec cat {} | formail -s procmail; mv mist {}.new \; Hier gibt es dann die Fehlermeldung: find: cat ./header | formail -s procmail; mv mist ./header.new: No such file or directory s. o. - wahrscheinlich wird mist im aktuellen Verzeichnis nicht gefunden. find . -maxdepth 1 -type f -exec cat \{\} | formail -s procmail; mv mist \{\}.new \; ergibt find: missing argument to `-exec' mv: missing file argument Jepp - da Du die Befehlefolge nicht quotest, wird nur der Teil: cat \{\} für exec erkannt - und da fehlt eben das \; am Ende. Die Pipe gehört hier schon nicht mehr zum find. [...] Darauf habe ich dann eine Shell-Funktion definiert: prune() { cat $1 | formail -s procmail mv mist $1.new } Der Aufruf dieser Funktion aus find funktioniert nicht: find . -maxdepth 1 -type f -exec prune {} \; find: prune: No such file or directory Das liegt wohl daran, dass -exec eine eigene Shell oeffnet, in der prune nicht definiert ist. Also im naechsten Schritt: Sehe ich auch so. prune () { cat $1 | formail -s procmail; mv mist $1.new; }; export prune; find . -maxdepth 1 -type f -exec prune {} \; find: prune ./header: No such file or directory Kann es sein, dass der Konstrukt prune {} als _ein_ Kommando aufgefasst wird? Versuchs hier doch mal ohne - so wie oben. Jetzt bin ich mit meinem Latein am Ende und dankbar fuer jeden Hinweis. :-) Ich glaube. mit einem Shell-Script statt einer Funktion hättest Du weniger Sorgen. Jan -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.29 16:10, Jan Trippler wrote: Am Sonntag, 29. Februar 2004 11:30 schrieb Andreas Schmidt: [...] Im konkreten Fall ging es darum, in einem Verzeichnis aus allen Mailboxen bestimmte Header zu entfernen. Ich hatte dafuer eine provisorische ~/.procmailrc angelegt (da die Mails ja schon sortiert waren, konnten die sonst faelligen Filter entfallen) : :0f : | formail -f -I Received: -I Envelope-to: -I Delivered-To: | :0 mist Das schiebt die Mails doch in ein Postfach mist - und der liegt im Verzeichnis $MAIL, oder? Das ist es nicht...hab eben mal ein touch /var/mail/mist gemacht, aendert aber nichts an der Fehlermeldung. Ebensowenig eine Aenderung des Pfades zu mist ins aktuelle Verzeichnis... Ich wollte jetzt fuer jede gefundene Mailbox procmail aufrufen und die Datei mist umbenennen: find . -maxdepth 1 -type f -exec cat {} | formail -s procmail; mv mist {}.new \; Hier gibt es dann die Fehlermeldung: find: cat ./header | formail -s procmail; mv mist ./header.new: No such file or directory s. o. - wahrscheinlich wird mist im aktuellen Verzeichnis nicht gefunden. Das ist richtig. Habe jetzt mal am Anfang der .procmailrc VERBOSE=on gestellt und Logging aktiviert. Dann den Teil mit mv weggelassen: find . -maxdepth 1 -type f -exec cat {} | formail -s procmail \; find: cat ./header | formail -s procmail: No such file or directory Die Logdatei wird nicht angelegt, was darauf hindeutet, dass formail ueberhaupt nicht ausgefuehrt wird. Kann es sein, dass find den gesamten String cat ./header | formail -s procmail als Dateinamen ansieht? find . -maxdepth 1 -type f -exec cat \{\} | formail -s procmail; mv mist \{\}.new \; ergibt find: missing argument to `-exec' mv: missing file argument Jepp - da Du die Befehlefolge nicht quotest, wird nur der Teil: cat \{\} für exec erkannt - und da fehlt eben das \; am Ende. Die Pipe gehört hier schon nicht mehr zum find. Ist nachvollziehbar. Aber wenn ich quote, wird der Dateiname nicht gefunden... prune () { cat $1 | formail -s procmail; mv mist $1.new; }; export prune; find . -maxdepth 1 -type f -exec prune {} \; find: prune ./header: No such file or directory Kann es sein, dass der Konstrukt prune {} als _ein_ Kommando aufgefasst wird? Versuchs hier doch mal ohne - so wie oben. prune() { cat $1 | formail -s procmail; }; export prune; find . - maxdepth 1 -type f -exec prune {} \; find: prune: No such file or directory exec mag wohl keine Shell-Funktionen... Ich glaube. mit einem Shell-Script statt einer Funktion hättest Du weniger Sorgen. War halt nur ein quick'n'dirty hack. :-) Aber Du hast recht, die Funktion in ein Script gepackt wird ausgefuehrt. Und wenn man '$1' mit '$*' ersetzt, werden sogar Dateinamen mit Leerzeichen richtig erkannt. Letztlich sieht es also wohl danach aus, dass man find wirklich nur ein einzelnes Kommando direkt ausfuehren lassen kann. Aeusserst unpraktisch, wenn man in solchen Faellen jedesmal erst ein eigenes Script schreiben muss... Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.29 15:02, Matthias Kluwe wrote: Hierfür könnte (ohne das Problem genau zu kennen) evtl. for f in $(find . -maxdepth 1 -type f) do cat $f | formail -s procmail mv mist $f.new done eine Lösung sein. Nicht wirklich. Damit fange ich mir dasselbe Problem wieder ein, dass ich mit find umgehen wollte: Dateinamen mit Leerzeichen im Namen werden gesplittet: for f in $(find . -maxdepth 1 -type f); do echo $f; done ./header ./Debian News ./Debian User Denselben Effekt koennte man viel einfacher mit einem simplen for f in `ls` erzielen. :-) Trotzdem danke fuer die Hilfe. Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am Sonntag, 29. Februar 2004 20:44 schrieb Andreas Schmidt: [...] War halt nur ein quick'n'dirty hack. :-) Aber Du hast recht, die Funktion in ein Script gepackt wird ausgefuehrt. Und wenn man '$1' mit '$*' ersetzt, werden sogar Dateinamen mit Leerzeichen richtig erkannt. Letztlich sieht es also wohl danach aus, dass man find wirklich nur ein einzelnes Kommando direkt ausfuehren lassen kann. Aeusserst unpraktisch, wenn man in solchen Faellen jedesmal erst ein eigenes Script schreiben muss... Naja - so viel Mühe ist das ja auch nicht ;) - Aber mir ist grad noch ne andere Idee aus /dev/brain/remember hochgegekommen (für diesen Fall allerdings nicht getestet) - 1 Zeile: find . -maxdepth 1 -type f -printf cat \%p\ | formail -s procmail; mv mist \%p\.new\n | sh ggf. Pfadnamen ergänzen (für mist und dergleichen). Jan -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find... [SOLVED]
On 2004.02.29 21:05, Jan Trippler wrote: Am Sonntag, 29. Februar 2004 20:44 schrieb Andreas Schmidt: [...] War halt nur ein quick'n'dirty hack. :-) Aber Du hast recht, die Funktion in ein Script gepackt wird ausgefuehrt. Und wenn man '$1' mit '$*' ersetzt, werden sogar Dateinamen mit Leerzeichen richtig erkannt. Letztlich sieht es also wohl danach aus, dass man find wirklich nur ein einzelnes Kommando direkt ausfuehren lassen kann. Aeusserst unpraktisch, wenn man in solchen Faellen jedesmal erst ein eigenes Script schreiben muss... Naja - so viel Mühe ist das ja auch nicht ;) - Aber mir ist grad Macht aber alles unuebersichtlicher...entweder muss man die Pfade im Script anpassen, oder dafuer sorgen, dass das Script selbst nicht gefunden wird... noch ne andere Idee aus /dev/brain/remember hochgegekommen (für diesen Fall allerdings nicht getestet) - 1 Zeile: find . -maxdepth 1 -type f -printf cat \%p\ | formail -s procmail; mv mist \%p\.new\n | sh ggf. Pfadnamen ergänzen (für mist und dergleichen). Das ist genial! Waere nie darauf gekommen, etwas in die Shell zu pipen! Und es macht genau das, was ich brauche...sehr schoen, wieder was gelernt. Vielen Dank und schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 21:56, Michelle Konzack wrote: Am 2004-02-16 17:17:27, schrieb Andreas Schmidt: On 2004.02.16 16:00, Michelle Konzack wrote: manpage nicht gelesen ? Doch, schon. Allerdings stand da nicht, dass man auch das Semikolon per Quote oder Backslash vor der Shell schuetzen muesse. ??? - In meiner stand es (An dieser Stelle haette jetzt eigentlich das Zitat aus der Man-page kommen sollen. aber ich bekomme es einfach nicht gebacken, aus man- output im xterm Zeugs zu kopieren. Gwas soll das nun schon Du meinst das... AAkkttiioonneenn:: --eexxeecc _K_o_m_m_a_n_d_o_; führt das _K_o_m_m_a_n_d_o aus; die Aktion ist wahr, wenn das Kommando einen Status von Null liefert; alle auf den Kommandonamen folgenden Argumente bis zu einem Semikolon ;; werden als Kommandozeilenargu mente für das Kommando interpretiert; das Semikolon kann nicht weggelassen werden, und es muß durch mindestens ein Whitespace von der letzen Option getrennt werden; die Konstruktion {{}} wird durch den Pfadnamen der Datei ersetzt; die Klammern und das Semikolon müssen in der Kommandozeile für ffiinndd quotiert werden, damit sie nicht von der Shell bearbeitet werden Jetzt bin ich ehrlich verbluefft und in meinen Grundfesten erschuettert! Die deutsche Version der man page ist in diesem Punkt wirklich ausfuehrlicher als die englische! Der Teil das Semikolon kann nicht weggelassen werden, und es muß durch mindestens ein Whitespace von der letzen Option getrennt werden fehlt komplett: -exec command ; Execute command; true if 0 status is returned. All following arguments to find are taken to be arguments to the command until an argument consisting of `;' is encountered. The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a `\') or quoted to protect them from expansion by the shell. The command is executed in the starting directory. Ich habe zwar grundsaetzlich meine locale auf [EMAIL PROTECTED] eingestellt, aber LANG, LC_TIME und LC_MESSAGES sind auf en_US.ISO-8859-1 gesetzt, weil es eh nicht fuer alle man pages eine deutsche Version gibt (von HowTos ganz zu schweigen!) und die deutsche Version von Menueintraegen etc. immer etwas ungluecklich wirkt. In diesem Fall ist also die deutsche man page deutlich besser...ok, wieder was gelernt! :-) wieder?! man abgebrochen, und copy/paste aus dem selben xterm funzt ohne Probleme.) Also wenn du less verwendest: man find Dann bis zur gewuenschten Stelle gehen (erste Zeile ganz oben muss die lezte zu kopierende Zeile sein) und 'm' druecken. Jetzt erscheint 'mark' in der Komandozeile und du gibst einen Buchstaben Deiner Wahl ein. Danach soweit nach oben scrollen bis die erste Zeile die Du kopieren willst ganz oben ist. Jetzt 'ALT|' druecken und es erscheint '|mark' wo du den gewaehlten Buchstaben eingebeb musst. Der Text zwischen der Marke 'Buchstabe' und der obersten Zeile ist jetzt unsichtbar selektiert. Nun erscheint ein '!' das eine 'PIPE' ist. Hier gibste Du zum Beispiel 'cat ~/test.txt' ein und drueckste Eingabe. Nun wird '|done' angezeitgt. Wenn Du nun in Dein ~/ Verzeichnis gehst, wirst Du die Datei test.txt finden mit dem kopiertem text. Wunderbar, das funktioniert! Danke fuer die Anleitung! Die kann ich dann mit F15 (dann Detei eingeben) in meine Mail einfuegen. Hmm...ich nehme zwar auch mutt, allerdings nur, wenn ich per ssh eingeloggt bin. Hier unter Gnome laeuft Balsa; naja, manchmal schleicht es eher so dahin. :-) Habe gerade letzte Woche meine mbox dieser Liste bereinigt; alles von Juli bis Dezember letzten Jahres separat gespeichert (uebrigens mit mutt) und gezippt. Nachdem die mbox von ca 18,000 Mails/110 MB auf ein Drittel geschrumpft ist, kann ich auch mal wieder was sortieren lassen, ohne gleich die Zwangspause mit Kaffee kaufen, kochen und trinken ausfuellen zu muessen. :-) Wo wir aber schon einmal so weit OT sind: von mutt war ich (alter elm- user) besonders wegen des message threading begeistert, und schnell ist er ja auch einigermassen. Aber wie verhaelt sich das dem Handling mehrerer Mailboxen? Bisher habe ich zum Durchsehen meiner Spamablagen immer jeden Folder per mutt -f in einer neuen Instanz geoeffnet. Sicherlich gibt es da auch einfachere Moeglichkeiten, oder? Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
High, high ... * Andreas Schmidt [EMAIL PROTECTED] schrieb am [17.02.04 09:09]: [ er ja auch einigermassen. Aber wie verhaelt sich das dem Handling mehrerer Mailboxen? Bisher habe ich zum Durchsehen meiner Spamablagen immer jeden Folder per mutt -f in einer neuen Instanz geoeffnet. Sicherlich gibt es da auch einfachere Moeglichkeiten, oder? Trage in die .muttrc folgendes ein: mailboxes +mailbox1 +mailbox2 Bei mir sind mailbox1 etc +INBOX.debuser etc., da ich cyrus21 benutze. In der manpage steht mailboxes filename filename. Kiste -- ### Netzworkk Kai Wilke [EMAIL PROTECTED] http://www.netzworkk.de http://netzworkk.berlios.de signature.asc Description: Digital signature
Re: Mal wieder find...
Am 2004-02-17 09:09:33, schrieb Andreas Schmidt: Jetzt bin ich ehrlich verbluefft und in meinen Grundfesten erschuettert! Die deutsche Version der man page ist in diesem Punkt wirklich ausfuehrlicher als die englische! Der Teil das Semikolon Wie schon einmal erwaehnt, ich habe ein Multi-User und Multi-Language System laufen. Die Hauptsprachen sind DE, EN, FR, TR und AR aber auch ES. hane alles was manpages war installiert und frage ja nicht, was da unterschiede sind. Da kannste Dir glat nen Schuss geben, - vor allem wenn Du wie ich ueber mehrere Laender und Sprachen hinweg helfen willst. Ich kann einem Tuerken nicht den gleichen Tip geben wie einen Franzosen ! Hatte schon mehrfach die Autoren der 'manpages' parallel angeschrieben, aber nur von weniger als 5% Feedback bekommen. Habs dann sein lassen. So macht es einfach kein Spass mehr. Vor allem habe ich hier ein seperates System, auf dem ich exakt das mache, was ich in meinen Debian Installations Handbuch 3.0 installiere und mache. Das dih30 schreibe ich auf DE, EN und FR parallel ueber drei Text- editoren gleichzeitig. Daneben habe ich dreimal die manpages geoeffnet um Textpasagen zu kopieren... Denke das sich jetzt jeder seinen Teil denken kann, was da raus kommt. Frage an Profies: Soll ich dafuer Bug-Reports schreiben ? = Ich habe zwar grundsaetzlich meine locale auf [EMAIL PROTECTED] eingestellt, aber LANG, LC_TIME und LC_MESSAGES sind auf en_US.ISO-8859-1 gesetzt, weil es eh nicht fuer alle man pages eine deutsche Version gibt (von HowTos ganz zu schweigen!) und die deutsche Version von Menueintraegen etc. immer etwas ungluecklich wirkt. In diesem Fall ist also die deutsche man page deutlich besser...ok, wieder was gelernt! :-) Abgesehen davon sind die 'manpages-de' wirklich gut... Wunderbar, das funktioniert! Danke fuer die Anleitung! Habe auch eine Weile gebraucht, das less noch ein bischen mehr kann... Hatte auf einem 'Basissystem + less + mc + gpm + mutt + lynx' mal angefangen, ein verzeichnis nach dem anderen mal zu surfen... 'mc' ist dafuer einfach genial. und auf der zweiten console habe ich dann die 'manpages' aufgerufen... WOW, - Da habe ich sachen gefunden !!! Sprich, wenn Du weist, was bereits die Basisinstallation so alles mitbringt, macht das Leben auf der Console so richtig spass... Hmm...ich nehme zwar auch mutt, allerdings nur, wenn ich per ssh eingeloggt bin. Hier unter Gnome laeuft Balsa; naja, manchmal schleicht Balsa habe ich vor 4 Jahren oder so verwendet... allerdings ohne Gnome. es eher so dahin. :-) Habe gerade letzte Woche meine mbox dieser Liste bereinigt; alles von Juli bis Dezember letzten Jahres separat gespeichert (uebrigens mit mutt) und gezippt. Nachdem die mbox von ca 18,000 Mails/110 MB auf ein Drittel geschrumpft ist, kann ich auch mal wieder was sortieren lassen, ohne gleich die Zwangspause mit Kaffee kaufen, kochen und trinken ausfuellen zu muessen. :-) Nimm formail und filter die Received-Header weg. Die braucht man sowieso nicht mehr. Das spart bei 18.000 Mails garantiert 25 MBytes. Habe ich vor ein paar Tagen mit meiner Workstation gemacht und 200 MByte im Maildir eingesparrt. Zur Zeit lasse ich den Filter auf meinem DEBIAN Server laufen, auf dem ich ein List-Archive mit 4.370.000 Mails im Maildir (37 GByte) habe. Leider habe ich noch ein ext3 mit Blocksize 4 kByte, was ich aber nach dem Filtern auf 1 kByte aendern will. Denke, das am ende die Mails weniger als 20 GByte verbrauchen werden. Wo wir aber schon einmal so weit OT sind: von mutt war ich (alter elm- user) besonders wegen des message threading begeistert, und schnell ist er ja auch einigermassen. Aber wie verhaelt sich das dem Handling mehrerer Mailboxen? Bisher habe ich zum Durchsehen meiner Spamablagen immer jeden Folder per mutt -f in einer neuen Instanz geoeffnet. Sicherlich gibt es da auch einfachere Moeglichkeiten, oder? Mit 'c' wechselst Du die Mailbox und wenn Du danach ein '?' drckst, siehste alle Deine mailboxem im Verzeichnis. Aber du kannst auch 'mailboxes' verwenden... Z.B. #~/.muttrc mailboxes +INBOX +NIGSCAM +SOBER +SWEN \ +michelle +debian-user-german +mutt-users mailboxes definiert alle Mailboxen, in denen Du neue Mail empfangen kannst, also pocmail diese einsortiert. Wenn Du dann neue E-Mails empfaengst, wird es in der unteren Zeile angezeigt. Wechsel kannst Du einfach mit 'c' was Dir automatisch die nchste mailbox oeffnet oder danach ein TAB, bzw mehrere. Mit einem TAB bekommst Du alle 'mailboxes' mit fuehrendem '=' angezeigt TABTAB bekommst Du alle MAIlboxen im Aktuellen Verzeichnis angezeigt. Hier kannst Du dan mit up oder down auswhlen und mit enter besaettigen. Schoenen Gruss, Andreas Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN
Re: Mal wieder find...
Andreas == Andreas Schmidt [EMAIL PROTECTED] writes: Andreas Hallo, Andreas irgendwie hab ich Probleme mit find. Wollte fuer eine Reihe DAteien Andreas chmod setzen. Andreas man find meint, dass man per -exec command; ein Kmmano ausfuehren Andreas lassen koenne. Andreas [...] Das Semikolon ist gleichzeitig Komanndotrenner der Shell. Der find bekommt das nie mit, weils von der Shell ausgewertet wird. Beispielsweise gibt echo ; nie ein Semikolon aus, wohl aber echo \; Also besser find . -name type d -exec command {} \; Einfacher und besser für Deine Aufgabe ist aber find . -name type d | xargs command Hth -- Peter -- Peter Weiss / [EMAIL PROTECTED] Sun Microsystems GmbH / Sonnenallee 1, D-85551 Kirchheim-Heimstetten (+49 89) 46008 2947 / mobil 0177/ 60 40 121 -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On Mon, 2004-02-16 at 14:28, Andreas Schmidt wrote: Hallo, irgendwie hab ich Probleme mit find. Wollte fuer eine Reihe DAteien chmod setzen. man find meint, dass man per -exec command; ein Kmmano ausfuehren lassen koenne. Habe gerade auch nochmal die Postings hier durchgesehen (in letzter Zeit gab es ja einige Fragen zu find), aber dort war nichts zu einer Aktion -exec zu finden; wurde alles nur mit -[print0|name] | xargs gemacht. Hat das einen besonderen Grund? Ist -exec nicht mehr ueblich? Hier mal meine Versuche: [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 {}; find: missing argument to `-exec' [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 {}; find: missing argument to `-exec' [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 {}; find: missing argument to `-exec' [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 \{\}; find: missing argument to `-exec' {} soll angeblich durch den aktuellen Dateinamen ersetzt werden. Was mache ich hier jetzt also falsch? Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; sollte zum Erfolg führen. -alf -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On Mon, Feb 16, 2004 at 02:40:12PM +0100, Alf Werder wrote: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Bei welcher Shell? Bei tcsh und bash ist es überflüssig. Grüße, Torsten -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 14:35, Peter Weiss, Sun Microsystems, Germany wrote: Andreas == Andreas Schmidt [EMAIL PROTECTED] writes: Andreas Hallo, Andreas irgendwie hab ich Probleme mit find. Wollte fuer eine Reihe DAteien Andreas chmod setzen. Andreas man find meint, dass man per -exec command; ein Kmmano ausfuehren Andreas lassen koenne. Andreas [...] Das Semikolon ist gleichzeitig Komanndotrenner der Shell. Der find bekommt das nie mit, weils von der Shell ausgewertet wird. Beispielsweise gibt echo ; nie ein Semikolon aus, wohl aber echo \; Also besser find . -name type d -exec command {} \; OK, soweit habe ich nicht gedacht, jetzt funktioniert es! Das erklaert natuerlich auch, warum -exec so selten in den Beispielen hier auf der Liste genutzt wurde.. Einfacher und besser für Deine Aufgabe ist aber find . -name type d | xargs command Sicher. Da ich ja aber erstmal das andere ausprobieren musste, ist die Sache mittlerweile schon erledigt. :-) Ausserdem geht es ja auch ums Prinzip. Kann doch nicht solche bloeden Fehlermeldungen ueber mich ergehen lassen, ohne dahinterzukommen, wie man sie abstellt! Danke fuer den Tip also, schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
[EMAIL PROTECTED] (Peter Weiss, Sun Microsystems, Germany) writes: Also besser find . -name type d -exec command {} \; Was macht das -name ohne Argument darin? Einfacher und besser für Deine Aufgabe ist aber find . -name type d | xargs command Das ist keinesfalls besser. Ärger mit White Space in Filenamen ist da vorprogrammiert. Wenn schon, dann (GNU vorausgesetzt): find . -type d -print0 | xargs -0 command Gruß, Heike -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On Mon, Feb 16, 2004 at 03:32:20PM +0100, Heike C. Zimmerer wrote: find . -name type d -exec command {} \; Was macht das -name ohne Argument darin? Es hat doch ein Argument, nämlich type, also werden alles Files namens type gesucht. Leider verursacht dann das allein stehende d einen Fehler... ;) Grüße, Torsten -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am 2004-02-16 14:28:29, schrieb Andreas Schmidt: Hallo, xargs gemacht. Hat das einen besonderen Grund? Ist -exec nicht mehr ueblich? ganz im gegenteil... Hier mal meine Versuche: [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 {}; manpage nicht gelesen ? Versuchs mal mit: find . -type f -exec chmod 640 {} ';' {} soll angeblich durch den aktuellen Dateinamen ersetzt werden. Was mache ich hier jetzt also falsch? s.o. Schoenen Gruss, Andreas Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am 2004-02-16 14:40:12, schrieb Alf Werder: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Heumexperimentiert und keine manpage gelesen... find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. sollte zum Erfolg führen. -alf Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Andreas Schmidt wrote: | irgendwie hab ich Probleme mit find. Wollte fuer eine Reihe DAteien | chmod setzen. | | man find meint, dass man per -exec command; ein Kmmano ausfuehren | lassen koenne. Habe gerade auch nochmal die Postings hier durchgesehen | (in letzter Zeit gab es ja einige Fragen zu find), aber dort war nichts | zu einer Aktion -exec zu finden; wurde alles nur mit -[print0|name] | | xargs gemacht. Hat das einen besonderen Grund? Ist -exec nicht mehr | ueblich? Der Nachteil an -exec ist, daß für jede Datei, die find findet ein neuer Prozess gestartet wird, und das kann extrem langsam sein. Beispiel: in /foo liegen bar001 - bar999 Ein find /foo -type f -exec chmod +w {} \; erzeugt folgende Prozesse: 1.) find 2. bis 1000.) chmod +w bar00X Ein find /foo -type f -print 0 | xargs -0 chmod +w erzeugt folgende Prozesse: 1.) find 2.) chmod +w bar001 bar002 bar003 bar004 ... 3.) chmod +w bar101 bar102 bar103 bar104 ... Die Anzahl der Argumente, die chmod jeweils aufeinmal mitbekommt hängt von Deinem System ab, läst sich aber über --max-args begrenzen. Aufgepaßt: xargs übergibt die reingepipeten Argumente zunächst mal als letztes, möchte man etwas wie find -exec sh -c echo X{}X \; machen, so geht das mit -i: find /foo -type f -print0 | xargs -i sh -c echo X{}X Alle Beispiele ungetestet, YMMV, -billy. - -- Meisterbohne Meisterbohne GbR, Küfner, Mekle, Meier Tel: +49-731-399 499-0 ~ eLösungen Söflinger Straße 100 Fax: +49-731-399 499-9 ~ 89077 Ulm http://www.meisterbohne.de/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.4 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFAMONL6twtlEPERx4RAlzbAJ9elT9mZvPQkXp1MVvaNP0McblYAQCgo3eF f7+CkOAw09Mrag3lY6jamZE= =CfRg -END PGP SIGNATURE- -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 16:00, Michelle Konzack wrote: Am 2004-02-16 14:28:29, schrieb Andreas Schmidt: Hallo, xargs gemacht. Hat das einen besonderen Grund? Ist -exec nicht mehr ueblich? ganz im gegenteil... Hier mal meine Versuche: [EMAIL PROTECTED]:/mnt/fileserver/pub$ find . -type f -exec chmod 640 {}; manpage nicht gelesen ? Doch, schon. Allerdings stand da nicht, dass man auch das Semikolon per Quote oder Backslash vor der Shell schuetzen muesse. (An dieser Stelle haette jetzt eigentlich das Zitat aus der Man-page kommen sollen. aber ich bekomme es einfach nicht gebacken, aus man- output im xterm Zeugs zu kopieren. Gwas soll das nun schon wieder?! man abgebrochen, und copy/paste aus dem selben xterm funzt ohne Probleme.) Versuchs mal mit: find . -type f -exec chmod 640 {} ';' Ja, laeuft. Danke! Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 16:03, Michelle Konzack wrote: Am 2004-02-16 14:40:12, schrieb Alf Werder: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Heumexperimentiert und keine manpage gelesen... find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. Hier muss ich aber doch widersprechen und aus man find zitieren (gibt es ja zum Glueck auch noch online...): The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a `\') or quoted to protect them from expansion by the shell. Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Hallo Andreas! On Mon, Feb 16, 2004 at 05:17:27PM +0100, Andreas Schmidt wrote: On 2004.02.16 16:00, Michelle Konzack wrote: manpage nicht gelesen ? Doch, schon. Allerdings stand da nicht, dass man auch das Semikolon per Quote oder Backslash vor der Shell schuetzen muesse. Aus man find: |-exec command ; |Execute command; true if 0 status is returned. All following arguments |to find are taken to be arguments to the command until an argument |consisting of `;' is encountered. The string `{}' is replaced by the |current file name being processed everywhere it occurs in the |arguments to the command, not just in arguments where it is alone, as |in some versions of find. Both of these constructions might need to be |escaped (with a `\') or quoted to protect them from expansion by the |shell. The command is executed in the starting directory. Letzte drei Zeilen... Gruß, Flo signature.asc Description: Digital signature
Re: Mal wieder find...
On 2004.02.16 15:14, Torsten Schneider wrote: On Mon, Feb 16, 2004 at 02:40:12PM +0100, Alf Werder wrote: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Bei welcher Shell? Bei tcsh und bash ist es überflüssig. Kann ich hier (bash) so nicht bestaetigen. Zumindest das Semikolon muss versteckt werden, ansonsten spuckt er wieder die Fehlermeldungen aus... Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On Mon, Feb 16, 2004 at 05:50:26PM +0100, Andreas Schmidt wrote: find . -type f -exec chmod 640 \{\} \; Bei welcher Shell? Bei tcsh und bash ist es überflüssig. Kann ich hier (bash) so nicht bestaetigen. Zumindest das Semikolon muss versteckt werden, ansonsten spuckt er wieder die Fehlermeldungen aus... Ich meinte eher, welche Shell Probleme mit dem {} ohne Backslashes hat. Grüße, Torsten -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On Mon, 2004-02-16 at 15:14, Torsten Schneider wrote: On Mon, Feb 16, 2004 at 02:40:12PM +0100, Alf Werder wrote: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Bei welcher Shell? Bei tcsh und bash ist es überflüssig. Ich kann hier bei mir (bash 2.05b-12, findutils 4.1.20-3) nicht darauf verzichten. Seit der Bourne Shell trennt ein Semikolon die Kommandos. Bash und tcsh interpretieren das Semikolon auf jeden Fall. Ich denke eher, daß es evtl. Versionen von find gibt, die das Semikolon nicht einfordern, wenn die Option -exec am Ende das Befehls steht. -alf -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Andreas Schmidt [EMAIL PROTECTED] writes: find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. Hier muss ich aber doch widersprechen und aus man find zitieren (gibt es ja zum Glueck auch noch online...): The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a `\') or quoted ^^ to protect them from expansion by the shell. Wo siehst du einen Widerspruch? Gruß, Heike -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 17:31, Florian Ernst wrote: Hallo Andreas! On Mon, Feb 16, 2004 at 05:17:27PM +0100, Andreas Schmidt wrote: On 2004.02.16 16:00, Michelle Konzack wrote: manpage nicht gelesen ? Doch, schon. Allerdings stand da nicht, dass man auch das Semikolon per Quote oder Backslash vor der Shell schuetzen muesse. Aus man find: |-exec command ; |Execute command; true if 0 status is returned. All following arguments |to find are taken to be arguments to the command until an argument |consisting of `;' is encountered. The string `{}' is replaced by the |current file name being processed everywhere it occurs in the |arguments to the command, not just in arguments where it is alone, as |in some versions of find. Both of these constructions might need to bethese |escaped (with a `\') or quoted to protect them from expansion by the |shell. The command is executed in the starting directory. Letzte drei Zeilen... Ich bilde mir ein, ein kleines bisschen Englisch zu koennen, und bin dafuer beruechtigt, mit meinen Referenzen eher pedantisch umzugehen. Key ist in den letzten drei Zeilen ja wohl Both of these constructions. Man koennte argumentieren, dass damit `;' und `{}' gemeint seien. Dagegen spraeche, dass die einfachen Anfuehrungszeichen sowohl in until an argument consisting of `;' is encountered als auch in The string `{}' is replaced nur dazu dienen, diese Sonderzeichen gegenueber dem sie umgebenden Text abzugrenzen. Verstaerkt wird dieser Eindruck durch den folgenden Satz, der explizit darauf aufmerksam macht, [that] these constructions might need to be escaped. Bezoegen sich die letzten drei Zeilen also auf ; und {}, so wuerde das einzeln stehende Semikolon zur construction geadelt werden. Zumindest meinem Verstaendnis liefe das zuwider. Plausibler erscheint mir, dass sich die Phrase both of these constructions eben nicht auf ; und {} bezieht, sondern auf zwei andere Konstrukte. Diese sind im unmittelbar vorherstehenden Satz genannt: a) The string `{}' is replaced [...] everywhere it occurs in the arguments to the command und b) [The string `{}' is replaced] not just in arguments where it is alone, as in some versions of find Diese Perspektive erlaubt es mir, guten Gewissens das Semikolon nicht den in der man page als zwingend schuetzenswert dargestellten Zeichen zuzurechnen. Sorry, wenn sich das alles etwas klugscheisserisch anhoeren mag. Aber der Mensch an sich kommt nun einmal schwer aus seiner Haut (in diesem Falle der eines angehenden Literaturwissenschaftlers, deshalb auch das Faible fuer Interpretationen) heraus, und mit dem Vorwurf der Korinthenkackerei lebe ich schon lange mehr oder weniger gut. :-) Gruß, Flo Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am Montag, 16. Februar 2004 19:03 schrieb Andreas Schmidt: [...] Ich bilde mir ein, ein kleines bisschen Englisch zu koennen, und bin dafuer beruechtigt, mit meinen Referenzen eher pedantisch umzugehen. [viel Interpretation] Diese Perspektive erlaubt es mir, guten Gewissens das Semikolon nicht den in der man page als zwingend schuetzenswert dargestellten Zeichen zuzurechnen. [...] Und was nutzt Dir diese Interpretation - mag sie noch so guten Gewissens gezeugt worden sein? Sie ist schlicht und einfach falsch. Das Semikolon _muss_ vor der Shell (zumindest Bourne-, Korn-Shell und bash) geschützt werden, entweder mit \; oder mit ';' (ich ziehe 1. Variante vor - 1 Zeichen weniger ;) - sonst funktioniert Dein exec einfach nicht. Der find lässt sich nicht durch mehr oder weniger spitzfindige man-Page-Interpretationen beeindrucken - und die Shell schon gar nicht ;) Jan -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 18:43, Heike C. Zimmerer wrote: Andreas Schmidt [EMAIL PROTECTED] writes: find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. Hier muss ich aber doch widersprechen und aus man find zitieren (gibt es ja zum Glueck auch noch online...): The string `{}' is replaced by the current file name being processed everywhere it occurs in the arguments to the command, not just in arguments where it is alone, as in some versions of find. Both of these constructions might need to be escaped (with a `\') or quoted ^^ to protect them from expansion by the shell. Wo siehst du einen Widerspruch? Der Widerspruch ist in dem Teil, den Du weggeschnitten hast. Ich fuege nochmal ein: On 2004.02.16 16:03, Michelle Konzack wrote: Am 2004-02-16 14:40:12, schrieb Alf Werder: Ich benutze find -exec oft und gerne. Man muß nicht nur die geschweiften Klammern, sondern auch das abschließende Semikolon vor der Shell verbergen: find . -type f -exec chmod 640 \{\} \; Heumexperimentiert und keine manpage gelesen... find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. Das sah fuer mich nach einem Ausschliesslichkeitsanspruch von Michelles Seite aus. Ich meinte nicht, dass ihre Variante falsch sei, sondern dass die von Alf ebenso richtig ist. Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
hi andreas, Am Montag, 16. Februar 2004 19.03 schrieb Andreas Schmidt: Plausibler erscheint mir, dass sich die Phrase both of these constructions eben nicht auf ; und {} bezieht, sondern auf zwei andere Konstrukte. Diese sind im unmittelbar vorherstehenden Satz genannt: a) The string `{}' is replaced [...] everywhere it occurs in the arguments to the command und b) [The string `{}' is replaced] not just in arguments where it is alone, as in some versions of find mhh, das Both impliziert aber das es zwei verschiedene constructions sind. Kritik des reinen Verstandes finde ich immer interessant, aber der Nebensatzt in b) erweitert nur die Aussage über The string `{}' . Schöner Versuch! ;-]] Schoenen Gruss, Andreas cheers jan sechser -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
On 2004.02.16 19:27, Jan Trippler wrote: Am Montag, 16. Februar 2004 19:03 schrieb Andreas Schmidt: [...] Ich bilde mir ein, ein kleines bisschen Englisch zu koennen, und bin dafuer beruechtigt, mit meinen Referenzen eher pedantisch umzugehen. [viel Interpretation] Diese Perspektive erlaubt es mir, guten Gewissens das Semikolon nicht den in der man page als zwingend schuetzenswert dargestellten Zeichen zuzurechnen. [...] Und was nutzt Dir diese Interpretation - mag sie noch so guten Gewissens gezeugt worden sein? Sie ist schlicht und einfach falsch. Das Semikolon _muss_ vor der Shell (zumindest Bourne-, Korn-Shell und bash) geschützt werden, entweder mit \; oder mit ';' (ich ziehe 1. Variante vor - 1 Zeichen weniger ;) - sonst funktioniert Dein exec einfach nicht. Der find lässt sich nicht durch mehr oder weniger spitzfindige man-Page-Interpretationen beeindrucken - und die Shell schon gar nicht ;) Weiss ich. Eigentlich ist das ganze doch aber schon lange gegessen. Ich habe gleich nach dem ersten Hinweis darauf, dass auch das Semikolon versteckt werden sollte, selbiges ausprobiert und war vom Erfolg begeistert. Hatte ich eigentlich ja auch schon geschrieben -- allerdings, zugegeben, ohne ein [Solved] im Subject. Konnte ja nicht ahnen, dass sich dieser Thread so dermassen verselbstaendigen wuerde. :-) Und die Interpretation habe ich ja auch nicht geliefert, weil ich mich immer noch hartnaeckig weigere, das Semikolon anstaendig zu quoten, sondern um mich von dem Vorwurf, TFM nicht gelesen zu haben, reinzuwaschen und mein vermeintliches Nichtverstaendnis der dort gegebenen Erklaerung zu begruenden. Schoenen Gruss, Andreas -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am 2004-02-16 19:46:00, schrieb Andreas Schmidt: find . -type f -exec chmod 640 {} ';' ist der richtige weg, wenn Du die manpage gelesen hättest. Das sah fuer mich nach einem Ausschliesslichkeitsanspruch von Michelles Seite aus. Ich meinte nicht, dass ihre Variante falsch sei, sondern dass die von Alf ebenso richtig ist. Nur habe ich meine Version erste hier in der Liste erfahren, dann in der Manpage gelesen und spaeter in ewig vielen Scripts von anderen Personen wiedergefunden. Schoenen Gruss, Andreas Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Mal wieder find...
Am 2004-02-16 17:17:27, schrieb Andreas Schmidt: On 2004.02.16 16:00, Michelle Konzack wrote: manpage nicht gelesen ? Doch, schon. Allerdings stand da nicht, dass man auch das Semikolon per Quote oder Backslash vor der Shell schuetzen muesse. ??? - In meiner stand es drin... (An dieser Stelle haette jetzt eigentlich das Zitat aus der Man-page kommen sollen. aber ich bekomme es einfach nicht gebacken, aus man- output im xterm Zeugs zu kopieren. Gwas soll das nun schon Du meinst das... AAkkttiioonneenn:: --eexxeecc _K_o_m_m_a_n_d_o_; führt das _K_o_m_m_a_n_d_o aus; die Aktion ist wahr, wenn das Kommando einen Status von Null liefert; alle auf den Kommandonamen folgenden Argumente bis zu einem Semikolon ;; werden als Kommandozeilenargu mente für das Kommando interpretiert; das Semikolon kann nicht weggelassen werden, und es muß durch mindestens ein Whitespace von der letzen Option getrennt werden; die Konstruktion {{}} wird durch den Pfadnamen der Datei ersetzt; die Klammern und das Semikolon müssen in der Kommandozeile für ffiinndd quotiert werden, damit sie nicht von der Shell bearbeitet werden wieder?! man abgebrochen, und copy/paste aus dem selben xterm funzt ohne Probleme.) Also wenn du less verwendest: man find Dann bis zur gewuenschten Stelle gehen (erste Zeile ganz oben muss die lezte zu kopierende Zeile sein) und 'm' druecken. Jetzt erscheint 'mark' in der Komandozeile und du gibst einen Buchstaben Deiner Wahl ein. Danach soweit nach oben scrollen bis die erste Zeile die Du kopieren willst ganz oben ist. Jetzt 'ALT|' druecken und es erscheint '|mark' wo du den gewaehlten Buchstaben eingebeb musst. Der Text zwischen der Marke 'Buchstabe' und der obersten Zeile ist jetzt unsichtbar selektiert. Nun erscheint ein '!' das eine 'PIPE' ist. Hier gibste Du zum Beispiel 'cat ~/test.txt' ein und drueckste Eingabe. Nun wird '|done' angezeitgt. Wenn Du nun in Dein ~/ Verzeichnis gehst, wirst Du die Datei test.txt finden mit dem kopiertem text. Die kann ich dann mit F15 (dann Detei eingeben) in meine Mail einfuegen. Versuchs mal mit: find . -type f -exec chmod 640 {} ';' Ja, laeuft. Danke! HAbe aber feststellen mssen, das in der deutschen man, bzw, dieser Version es nicht drin steht. Habe von find immerhin 8 VERSCHIEDENE manpages in de, fr und en. Schoenen Gruss, Andreas Greetings Michelle -- Registered Linux-User #280138 with the Linux Counter, http://counter.li.org/ -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)