Script-Spielerei (4) – Bilder automatisch in Unterordner schieben

Heute habe ich ein neues Problem gelöst. Ich möchte mich nicht damit beschäftigen, dass die Bilder, die ich automatisch per owncloud, nextcloud oder egroupware hochgeladen werden in meine Ordnerstruktur eingebunden werden- dies soll automatisch geschehen.

Nicht leichter als das (zumindest unter Linux!)- einfach ein cron-job eingerichtet und folgende bash-Datei ausgeführt:

#!/bin/bash
quellordner=/home/files/quellpfad
zielordner=/home/files/zielpfad

if [ `ls -a „$quellordner“ | wc -l` -gt 2 ] ; then
for file in $quellordner/*.*
do
dir=`echo $file | cut -d“_“ -f2 | cut -c1-4,5-6,7-8 –output-delimiter=- `
jahr=`echo $dir | cut -d“-“ -f1`
mkdir -p $zielordner/$jahr/$dir && mv $file /$zielordner/$jahr/$dir
done
fi

Zu Erklärung: Zuerst wird getestet, ob der Ordner leer ist, danach wird für jede Datei des Quellordners aus den Dateinamen das Datum  und das Jahr generiert, und ein Ordner für das Jahr und darin ein Ordner für das Datum angelegt (europäisches Datumsformat, damit besser sortiert werden kann). Danach wird die Datei darin verschoben.

Folgende Ideen habe ich damit zusammengefasst:

Ein Kommentar

  1. War gestern schon etwas spät- kleiner Fehler mit den Dateirechten- hier die korrigierte Version:

    #!/bin/bash
    quellordner=Quellordner
    zielordner=Zielordner
    gruppe=gruppe

    if [ `ls -a „$quellordner“ | wc -l` -gt 2 ] ; then
    for file in $quellordner/*.*
    do
    benutzer=`ls -la $file | cut -d“ “ -f3`
    dir=`echo $file | cut -d“_“ -f2 | cut -c1-4,5-6,7-8 –output-delimiter=- `
    jahr=`echo $dir | cut -d“-“ -f1`
    mkdir -p $zielordner/$jahr/$dir && chown $benutzer:$gruppe $zielordner/$jahr/$dir && mv $file $zielordner/$jahr/$dir
    done
    fi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.

Datenschutzerklärung