
Hallo, Am Son, 22 Feb 2009, Stefan Plenert schrieb:
Am Sonntag, 22. Februar 2009 18:22:29 schrieb David Haller:
Am Son, 22 Feb 2009, Felix Lemke schrieb:
rm `find /home/stefan/ -name *.txt~`
*AUA* *PATSCH* [..] rm `find /home/stefan/ -name *.txt~` ist richtig. ___ _ _____ ___ ___ _ _ _/\| _ \/_\_ _/ __|/ __| || |/\_ < _/ _ \| | \__ \ (__| __ > < \/|_|/_/ \_\_| |___/\___|_||_|\/
NEIN. Und zwar gleich mehrfach. a) das *.txt~ wird von der shell expandiert, bevor find das zu sehen bekommt: $ set -x $ ls `find . -name *.txt~` ++ find . -name 'foo bar.txt~' foo.txt~ find: paths must precede expression Usage: find [path...] [expression] Wenn man a) korrigiert, dann b) versagt es bei Dateinamen mit Leer- und anderen Sonderzeichen: $ ls `find . -name '*.txt~'` ++ find . -name '*.txt~' + ls -N -T 0 ./foo.txt~ ./foo bar.txt~ ls: ./foo: No such file or directory ls: bar.txt~: No such file or directory ./foo.txt~ c) kann man wg. fehlendem Quoting fiese Dateinamen einschmuggeln. Korrekt sind (NUR): find /pfad -name '*.txt~' -exec rm '{}' \; find /pfad -name '*.txt~' -exec rm '{}' + find /pfad -name '*.txt~' -print0 | xargs -r -0 rm sowie die ersten beiden mit '-ok' statt '-exec'. Das mittlere geht nur mit BSD find (und sehr neuen GNU finds, IIRC), das letztere geht nur mit GNU find und GNU xargs. Das erste geht überall, ist aber gruselig langsam. Ein '-delete' hat mein GNU find nicht, neuere und BSD finds sollten das aber haben. Stefan, lese _DRINGEND_ den Abschnitt QUOTING in 'man bash'. Komplett. So oft bis du verstanden hast, was \, "", '', `` und $() machen. -dnh -- "The Universe says simply, but with every possible complication, 'Existence' and it neither pressures us nor draws us out, except as we allow. It all boils down to nothing, and where we have the means and will to fix our reference within that flux, then there we are. Let me be part of that outrageous chaos... and I am." -- Iain M. Banks -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org