79 lines
2.0 KiB
Bash
Executable File
79 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
checkcommand()
|
|
{
|
|
local result
|
|
local command="$1"
|
|
which "$command" 1>/dev/null 2>&1
|
|
if [[ $? == 0 ]]; then
|
|
echo "$command requirement OK"
|
|
result=1
|
|
else
|
|
echo "$command requirement MISSING"
|
|
result=0
|
|
fi
|
|
return $result
|
|
}
|
|
|
|
help()
|
|
{
|
|
echo "Usage:"
|
|
echo " tphoto -h Display help."
|
|
echo " tphoto Rename jpg files from current directory with Exif datetime."
|
|
echo " tphoto *.jpg Rename files in parameter with Exif datetime."
|
|
echo " tphoto -f Rename jpg files from current directory with Exif datetime or file datetime."
|
|
echo " tphoto -f *.jpg Rename files in parameter with Exif datetime or file datetime."
|
|
}
|
|
|
|
renameFromDirectoryWithExifOnly()
|
|
{
|
|
find . -maxdepth 1 -type f -iname "*.jpg" | while read path
|
|
do
|
|
filename=$(basename $path)
|
|
#echo "$filename"
|
|
if [[ $(jhead $filename | grep -c Date) == 1 ]]; then
|
|
#echo "yop $filename"
|
|
jhead -nIMG%Y%m%d-%H%M%S "$filename"
|
|
else
|
|
echo "$filename IGNORED"
|
|
fi
|
|
done
|
|
}
|
|
|
|
renameFromDirectory()
|
|
{
|
|
find . -maxdepth 1 -type f -iname "*.jpg" | while read path
|
|
do
|
|
filename=$(basename $path)
|
|
#echo "$filename"
|
|
jhead -nIMG%Y%m%d-%H%M%S "$filename"
|
|
done
|
|
}
|
|
|
|
|
|
# main
|
|
if [[ $# == 0 ]]; then
|
|
renameFromDirectoryWithExifOnly
|
|
elif [[ "$1" == "-h" ]]; then
|
|
help
|
|
elif [[ "$1" == "-f" && $# == 1 ]]; then
|
|
renameFromDirectory
|
|
elif [[ "$1" == "-f" && $# > 1 ]]; then
|
|
for filename do
|
|
if [[ "$filename" != "-f" ]]; then
|
|
#echo "$filename"
|
|
jhead -nIMG%Y%m%d-%H%M%S "$filename"
|
|
fi
|
|
done
|
|
else
|
|
for filename do
|
|
#echo "$filename"
|
|
if [[ $(jhead $filename | grep -c Date) == 1 ]]; then
|
|
#echo "yop $filename"
|
|
jhead -nIMG%Y%m%d-%H%M%S "$filename"
|
|
else
|
|
echo "$filename IGNORED"
|
|
fi
|
|
done
|
|
fi
|