Hallo, Am Sun, 05 Feb 2006, Roland Langner schrieb: [..]
Doch, hat gut funktioniert. Zuerst dachte ich es funktioniert nicht, da ich das -name "*.mp3" einfach weggelassen habe. Es kommen nämlich noch andere Dateiendungen vor z.B. .ogg. Wenn man das -name "*.mp3" ersetzt durch -type f dann tut es das was ich benötige.
Hier nochmal der Einzeiler von Jan in einem Beispiel: Das benutzte Verzeichnis beinhaltet mehrere Alben. Der Player sitzt auf /media/usbdisk :
find pointer_sisters -type f -print0 | sort -z | xargs -0 tar c -T - -O | (cd /media/usbdisk && tar x)
Achtung, das ist die falsche Version! Das xargs stoert. BTW: das Zielverzeichnis wuerde ich ueber eine Variable angeben. Also, da sowieso GNU tools vorausgesetzt werden: QDIR="${1:-.}" TDIR="${2:-/media/usbdisk}" find "$QDIR" -type f -print0 | sort -z \ | tar cp --null -T - | ( cd "$TDIR" && tar xpsv ; ) Statt tar koennte man auch cpio nehmen. BTW: mein 'cp' kennt keinen Schalter um das Zielverzeichnis "vorne" als Option angeben zu koennen. Noch ne Idee (UNGETESTET!): find "$QDIR" -type d -exec mkdir -p "${TDIR}/{}" \; find "$QDIR" -type f \ -printf "cp -dp '%p' '${TDIR}/%p'\n" | sort | sh Das kommt aber weder mit ', " noch Zeilenumbruch in Dateinamen zurecht. Aber immerhin ;) Die Loesung mit tar ist aber IMHO die beste und robusteste. Nicht immer sind die "einfachen" "schoenen" Loesungen die besten ;) -dnh -- "I think there is a world market for maybe five computers." -- Thomas Watson, chairman of IBM, 1943.