Hallo Stefan, nochmal zu deinem:
find . -name "*\ *" -exec echo {} `echo "{}"|sed s/\ /_/g` ;
Ich weiss jetzt was schief geht: Zuerst wird `echo "{}"|sed s/\ /_/g` evaluiert (also der String '{}' durch das sed geschickt mit dem Ergebnis '{}'. Dieses '{}' wird danach vom find mit dem gefundenen File ersetzt.
Du machst also nix anderes als:
find . -name "*\ *" -exec echo {} {} ;
Wie ich darauf gekommen bin:
rf11@max:~/tmp> ls -l total 2 -rw-r--r-- 1 rf11 users 0 Feb 26 21:50 s p a c e -rw-r--r-- 1 rf11 users 0 Feb 26 21:51 s p a c e 2 rf11@max:~/tmp> find . -name "*\ *" -exec echo {} `echo "{}" ` ; ./s p a c e 2 ./s p a c e 2 ./s p a c e ./s p a c e rf11@max:~/tmp> find . -name "*\ *" -exec echo {} `echo "{}" > xxx ` ; ./s p a c e 2 ./s p a c e rf11@max:~/tmp> cat xxx {} rf11@max:~/tmp>
Reinhard