Hi Steffen! On Fri, 12 Sep 2008, Steffen Hanne wrote:
#! /bin/sh
# Usage: # findbeta
# Reorder the directory entries according to alphanumerical order, so # find output is in order. Useful for preparing files for play on an # MP3 player that follows directory order.
# Thu Dec 27 02:47:00 EST 2007 v. 0.1 jh initial version
tmp=`mktemp -d -p /tmp` find . -type d | \ while read d do find "$d" -type f | \ while read f do mv "$f" $tmp done find $tmp -type f | sort -n \ while read f do <-hier ist der Fehler mv "$f" "$d" done done
Allerdings bekomme ich einen Syntaxfehler (unexpected token) in Zeile 23.
Da fehlt ein '|' in der Zeile vorher. Beim flüchtigen drüber schauen ist mir außerdem aufgefallen, dass Dein read Backslashes¹ schluckt. Besser read mit der Optione -r aufrufen (oder gleich find das umbenennen überlassen [ find ... -exec mv -t "$d" '{}' + ] __ ¹) Am robustesten ist afaik immer noch die Kombination find -print0 | while IFS= read -r -d $'\0' name ; do .... done Das sollte mit allen Ekligkeiten, die in Dateinamen vorkommen können umgehen können. Mit freundlichen Grüßen Christian -- You can be stopped by the police for biking over 65 miles per hour. You are not allowed to walk across a street on your hands. [real standing laws in Connecticut, United States of America] -- 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