bash script mit directory auslesen

hansp

New Member
Hallo Freunde,

ich wende mich an euch da meine script kenntnisse für mein Problem zu bescheiden sind.

Ich verwende Zuhause einen Videoserver als Recorder. Der legt jeden einzelnen Film in ein eigenes Directory mit dem Namen des Filmes. In diesem liegt wieder ein Verzeichnis bei dem das Aufnahmedatum der Name des Verzeichnisses ist, in dem endlich der Film steht (der heißt dann immer gleich).

Nun würde ich ein Script brauchen das die ganzen Verzeichnisse auswertet und Symlinks auf alle Filme aufbaut der aus Name erstes Verzeichnis, Name erstes Unterverzeichnis und dann auf den Film im 2. Unterverzeichnis zeigt.

Uff ob das wer versteht?

Liebe Grüße
hans-peter
 
Kleiner Einzeiler ;)
Code:
TOPDIR="Filme/"; for FILM in $(find ${TOPDIR} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f2); do for DATUM in $(find ${TOPDIR}${FILM} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f3); do ln -s ${TOPDIR}${FILM}/${DATUM}/movie.mpg ${TOPDIR}${FILM}_${DATUM}.mpg; done; done
 
Hi, ich brauche doch noch mal deine Hilfe:

ich habe das script angepasst:
Code:
TOPDIR="/home/hans-peter/testscript/"; for FILM in $(find ${TOPDIR} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f2); do for DATUM in $(find ${TOPDIR}${FILM} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f3); do ln -s ${TOPDIR}/${FILM}/${DATUM}/f1.a ${TOPDIR}${FILM}_${DATUM}.mpg; done; done

TOPDIR ist das Verzeichnis in dem die Hauptverzeichnisse der Filme stehen.
Die haben den Namen der Filme (ich verstehe nicht wie diese Verzeichnisnamen nach FILM kommen)

Ich bekomme nun für jedes Filmverzeichnis folgende Fehlermeldung:
Code:
find: "/home/hans-peter/testscript/home": No such file or directory

Könntest du da bitte nochmal draufschaun?

danke hp
 
Last edited by a moderator:
Du definierst als erstes die Variable "TOPDIR" mit dem Inhalt "/home/hans-peter/testscript/". Den musst du anpassen, da der Pfad bei dir nicht existiert.
Den Pfad musst du auf den anpassen, wo die einzelnen Filmordner drin liegen. In der folgenden for-i-Schleife wird dieser "TOPDIR"-Ordner als Startort für die Suche verwendet.
 
Hallo,

der Pfad
Code:
/home/hans-peter/testscript
stimmt aber. Nachdem die Fehlermeldung für jedes Unterverzeichnis kommt vermute ich das da irgendwas falsch zusammengesetzt wird. Wie kommt er auf
Code:
/home/hans-peter/testscript/home
statt home denke ich sollte er den Namen des ersten Dir's einsetzen. (oder so?)

Ist sicher nur eine Kleinigkeit aber mir fehlt das Wissen.
 
Last edited by a moderator:
Ah, i see.

Ersetze
Code:
find ${TOPDIR} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f[B][COLOR="Red"]2[/COLOR][/B]

mit

Code:
find ${TOPDIR} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f[B][COLOR="Red"]5[/COLOR][/B]

und

Code:
do for DATUM in $(find ${TOPDIR}${FILM} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f[B][COLOR="Red"]3[/COLOR][/B]);

mit

Code:
 do for DATUM in $(find ${TOPDIR}${FILM} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f[B][COLOR="Red"]6[/COLOR][/B]);
 
Perfekt, so laufts jetzt.
Danke für die Hilfe.

Code:
TOPDIR="/home/hans-peter/testscript/"; for FILM in $(find ${TOPDIR} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5); do for DATUM in $(find ${TOPDIR}${FILM} -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f6); do ln -s ${TOPDIR}${FILM}/${DATUM}/f1.a ${TOPDIR}${FILM}_${DATUM}.mpg; done; done

Und das ist das Ergebnis eines kleinen Testlaufs:

Code:
6326913 0 lrwxrwxrwx  1 root       root         42 2010-07-16 12:19 film1_123.mpg -> /home/hans-peter/testscript/film1/123/f1.a
16327016 4 drwxr-xr-x  3 root       root       4096 2010-07-15 21:15 film2
16326912 0 lrwxrwxrwx  1 root       root         42 2010-07-16 12:19 film2_234.mpg -> /home/hans-peter/testscript/film2/234/f1.a
16327017 4 drwxr-xr-x  3 root       root       4096 2010-07-15 21:16 film3
16326911 0 lrwxrwxrwx  1 root       root         42 2010-07-16 12:19 film3_345.mpg -> /home/hans-peter/testscript/film3/345/f1.a
16327018 4 drwxr-xr-x  3 root       root       4096 2010-07-15 21:16 film4
16326910 0 lrwxrwxrwx  1 root       root         42 2010-07-16 12:19 film4_456.mpg -> /home/hans-peter/testscript/film4/456/f1.a
 
Back
Top