[Bash] Probleme mit script zum entpacken

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hi,

    ich habe eine Kamera die mir ihre Fotos in einer Ordnerstruktur ausgibt die wie auf dem Foto abgebildet ist und ich habe bereits folgendes geschrieben was allerdings nicht wirklich funktioniert...


    vielen dank für die Hilfe

  • ich möchte an sich nur die bilder chronologisch sortiert haben dass ich ein time lapse video draus machen kann.

    Warum speichert die Cam nicht alle Bilder in einem (1) Ordner? Eigentlich können die Cams sowas... sie würde die Aufnahmen dann einfach durchnummerieren. Damit liegen alle Aufnamen automatisch chronologisch vor.

  • Also ich wollte das script zyklisch machen um alle Odner zu besuchen und die .jpg‘s umzubenennen ich weis halt nur nicht wie ich die nacheinander benennne. Der vorherige name spielt keine rolle. Die Kamera erstellt immer die gleichen Dateinamen und um die nicht löschen zu müssen wollte ich halt

    Code
    mv 

    benutzen.


    Das wär super wenn die kamera das so machen würde, ist aber eine Überwachungskamera und ich bekomme die leider nur so. Meine idee war es halt diese selbst neu zu benennen nach zb dem Ordnername.

  • Also die Cam-Software erzeugt bei jedem Bild, dass sie speichert, ein neues Verzeichnis? Das glaubst Du nicht wirklich, oder?

    Natürlich geht das trotzdem, guckstu hier: durchnummerieren. Man muss es nur ein wenig umbauen, in eine While-Schleife, die einen find ausliest. Aber ich halte das für so ziemlich die schlechteste Lösung überhaupt. Ich würde eine solche Cam definitiv als "Fehlerhaft" zurückschicken.... wobei ich mir allerdings sowieso nicht vorstellen kann, dass eine Cam wirkich nur auf diese Art speichern kann..... sowas programmieren imho nicht mal die Billig-China-Hersteller.

  • Klar, müsstest Du Dir halt aus dem Output von ls oder stat extrahieren.

    Ungetesteter Vorschlag für Durchnumerierung:

    Bash
    #!/bin/sh
    ZIEL=/dein/wunschziel
    START=$(ls -tr $ZIEL|tail -1|cut -d. -f1)
    
    for file in $(ls -tr  ???/???/E*.jpg)
    do
      START=$(( START+1 ))
      mv $file $ZIEL/$START.jpg
    done

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!