Am 11.11.2010 16:10, schrieb Lentes, Bernd: Hallo zusammen,
Matthias Homann schrieb:
Am Donnerstag, 11. November 2010, 15:36:36 schrieb Lentes, Bernd:
Hallo,
habe in verschiedenen Unterordnern tif-Bilddateien liegen. Teilweise haben diese Dateien gleiche Namen. Ich möchte diese Dateien alle finden und mit einmaligem Namen in ein anderes Verzeichnis kopieren:
find . -iname '*.tif' -exec cp -v {} $(mktemp --tmpdir=../desktop_hintergrund_zentrum/).tif \;
[...]
es werden alle Dateien mit gleichem Zielnamen kopiert. Man find sagt zu --exec command:
"The specified command is run once for each matched file" Also müsste mktemp doch jedes mal neu aufgerufen werden, und mir einen anderen Dateinamen generieren. Wieso macht es das nicht ?
weil mktemp nur EINMAL aufgerufen wird, wenn die bash deine eingabezeile analysiert... also BEVOR find überhaupt loslegt.
Hallo,
Du hast recht. Es liegt wohl an der Kommandosubstitution $(command), die nur einmal ausgeführt wird. Das folgende funktioniert:
find . -iname '*.tif' -exec mktemp --tmpdir=../desktop_hintergrund_zentrum/ \; ../desktop_hintergrund_zentrum/tmp.jeDZI1qOsO ../desktop_hintergrund_zentrum/tmp.SA41OSHidD ../desktop_hintergrund_zentrum/tmp.pKKd1C9YYL ../desktop_hintergrund_zentrum/tmp.r5suTHLteW ../desktop_hintergrund_zentrum/tmp.QV4htqesDg ../desktop_hintergrund_zentrum/tmp.V4u3W1XCA8 ../desktop_hintergrund_zentrum/tmp.IcyUBKa5Kt ../desktop_hintergrund_zentrum/tmp.0WxdexcZme ../desktop_hintergrund_zentrum/tmp.7etOCn2RMl ...
Aber wie kriege ich mein Problem gelöst ?
ich mag zwar komplett daneben liegen, aber warum nicht etwas wie for i in `find . -iname '*.tif'`; do mktemp bla $i; done ? Georg -- georg schilling systemhaus SAR gmbh tel: +49 2401 9195-33 http://www.sar.de arnold-sommerfeld-ring 27 fax: +49 2401 9195-66 52499 baesweiler amtsgericht aachen - hrb. 5729 - gf hans-juergen schenkelberg ----------------------------------------------------------------------- - IT-Projekte mit M.O.T.I.vation sicher zum Erfolg führen: www.sar.de - ----------------------------------------------------------------------- !DSPAM:245,4cdc0d2026272137028112! -- 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