Hallo,
meine Webcam lädt Fotos per FTP mit folgenden Dateinamen in ein Verzeichnis auf meinem Web-Server.
IMAGE_YYYYMMDD-HHmmss.jpg
Ich würde diese Dateien nun gerne per Cron-Job jeweils in der Nacht in eine Verzeichnisstruktur nach folgendem Schema verschieben lassen.
-YYYY
--MM
---DD
Die Verzeichnisstruktur ist natürlich noch nicht vorhanden und soll daher auf Basis der Dateinamen erstellt werden.
Wie stelle ich das am besten an?
Gruß
Jochen
Fotos per Cron-Job sortieren
Re: Fotos per Cron-Job sortieren
Möchtest du dich selbst einarbeiten, oder soll jemand ein Script für dich schreiben? Wenn Ersteres: wo genau hängst du denn gerade? Wenn Letzteres … irgendjemand wird sich schon finden.
Re: Fotos per Cron-Job sortieren
IMAGE_YYYYMMDD-HHmmss.jpg
Code: Alles auswählen
TGT="/path"
#ls -1 | egrep "^IMAGE_[0-9]{6}-[0-9]{6}.jpg$" | while read IMG; do
ls -1 | egrep "^IMAGE_[0-9]{8}-[0-9]{6}.jpg$" | while read IMG; do
DTE=${IMG#IMAGE_}
DTE=${DTE%-*}
DIR="$TGT/$(echo $DTE | sed 's@\(....\)\(..\)\(..\)@\1/\2/\3@')"
mkdir -p "$DIR" && mv $IMG "$DIR"
done
Irgendwas ohne sed? -> Performace
Aber das sed dürfte schneller sein als das Kopieren/Verschieben,
daher in diesem speziellen Fall wohl nicht relevant.
Zuletzt geändert von rendegast am 23.07.2016 20:55:36, insgesamt 2-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-
- Beiträge: 3304
- Registriert: 29.06.2013 17:32:10
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Fotos per Cron-Job sortieren
Schau dir mal exiftool an. Basiert dann aber auf den EXIF-Daten nicht auf Dateinamen.
https://manpages.debian.org/cgi-bin/man ... y=exiftool:
https://manpages.debian.org/cgi-bin/man ... y=exiftool:
Renaming Examples
...
exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d dir
Move all files in "dir" into a directory hierarchy based on year, month and day of "DateTimeOriginal". ie) This command would move the file "dir/image.jpg" with a "DateTimeOriginal" of "2005:10:12 16:05:56" to "2005/10/12/image.jpg".
(=_=)
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Unsere neue Mutter: https://www.nvidia.com/de-de/data-center/a100/
Re: Fotos per Cron-Job sortieren
Super, vielen Dank. Genau das habe ich gesucht.rendegast hat geschrieben:IMAGE_YYYYMMDD-HHmmss.jpgCode: Alles auswählen
TGT="/path" ls -1 | egrep "^IMAGE_[0-9]{6}-[0-9]{6}.jpg$" | while read IMG; do DTE=${IMG#IMAGE_} DTE=${DTE%-*} DIR="$TGT/$(echo $DTE | sed 's@\(....\)\(..\)\(..\)@\1/\2/\3@')" mkdir -p "$DIR" && mv $IMG "$DIR" done
Einen kleinen Fehler habe ich noch korrigiert Das Datum besteht aus 8 statt aus 6 Ziffern.
Code: Alles auswählen
TGT="/path"
ls -1 | egrep "^IMAGE_[0-9]{8}-[0-9]{6}.jpg$" | while read IMG; do
DTE=${IMG#IMAGE_}
DTE=${DTE%-*}
DIR="$TGT/$(echo $DTE | sed 's@\(....\)\(..\)\(..\)@\1/\2/\3@')"
mkdir -p "$DIR" && mv $IMG "$DIR"
done
Jochen