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 ? Bernd-- 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