sh 用于从数码相机加载和重命名照片的Bash文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于从数码相机加载和重命名照片的Bash文件相关的知识,希望对你有一定的参考价值。

#!/bin/bash

### Subroutines ###

# Prüft ob Pfad zu Bildern angegeben ist
assertCameraPathProvided() {
if [ -z "$1" ];
then
echo "Pfad zu Bildern auf der Kamera wird als erstes Argument benötigt (z.B. /media/disk/DCIM/100_FUJI)"
end;
fi
}

# Prüft ob Kamera angeschlossen
assertCameraPathAvailable() {
if [ ! -d "$1" ]; 
then
echo "Kamera nicht angeschlossen ($1 nicht gefunden)"
end;
else
echo "Pfad $1 wurde gefunden."
fi;
}

# Keine Eingabe? => Abbrechen
endIfInputEmpty() {
if [ -z "{$1}" ];
then
echo "Keine Eingabe."
end;
fi
}

end() {
echo "Skript wird nach Tastendruck beendet.";
read -n 1 -s
exit
}

openNautilus() {
echo "Nach Tastendruck wird der Ordner mit den Bildern wird geöffnet.";
read -n 1 -s
nautilus "$1"
exit
}

### Main ####

assertCameraPathProvided $1;
sourcedir=$1
datesuffix=$2
# ZUM TEST: "/home/johannes/Data/Scripts/DCIM/100_FUJI"
assertCameraPathAvailable $sourcedir;

year=$(date +%Y)
basedir="/home/johannes/Bilder/FOTOS/$year"

echo ""
echo "Bitte Beschreibung für Ordnernamen eingeben:";
while read inputline
do
description="$inputline"
endIfInputEmpty description;

datestr=$(date +%Y_%m%d)
targetdir="$basedir/$datestr$datesuffix $description"

echo "=================================================="
echo "Bilder werden verschoben.";
echo "Quelle: $sourcedir"
echo "Ziel: $targetdir";
echo "--------------------------------------------------"
mkdir "$targetdir";
pushd "$sourcedir" >/dev/null;
mv -i -v * "$targetdir";
popd >/dev/null;
echo "Verschieben der Bilder fertig.";
echo
echo "Bilder umbenennen nach Aufnahmezeitpunkt";
pushd "$targetdir" >/dev/null;
# .JPG umbenennen in .jpg
find -name "*.JPG" | while read a; do mv "$a" "${a%%.JPG}.jpg" ; done
# Nach Aufnahmezeitpunkt benennen
exiv2 rename -F -r %Y_%m%d_%H%M%S *.jpg
# .AVI umbenennen in <Modifictaion date>.avi
find -name "*.AVI" | while read a; do mv "$a" "`date -r $a +%Y_%m%d_%k%M%S`.avi" ; done
popd >/dev/null;
echo "=================================================="
echo
openNautilus "$targetdir";

done

以上是关于sh 用于从数码相机加载和重命名照片的Bash文件的主要内容,如果未能解决你的问题,请参考以下文章

在 bash 中使用正则表达式复制和重命名多个文件

iOS 上的 Plupload 仅适用于新照片,不适用于相机胶卷

无法重命名文件名

Swift fetchAssetsInAssetCollection:从相机胶卷范围内加载照片

iOS 如何从相机加载照片以解析 Swift

以纵向模式从相机拍摄的加载到画布上的照片是横向的