Du bist hier: Linux >> Bilder umbenennen

Bilder umbenennen

Einleitung

Um ein wenig Ordnung in die Sammlung meiner Bilder zu bringen, suchte ich nach einer Möglichkeit, das Datum, sowie die Uhrzeit der Aufnahme in den Dateinamen zu integrieren. Mittlerweile speichern die meisten Digitalkameras diese Informationen in den sog. Exif-Daten des Bildes. Auf der Suche nach einem Skript dazu im Internet bin ich auch schnell fündig  geworden.

Die Version von Kim Briggs habe ich etwas meinen Bedürfnissen angepasst. Bevor Du sie benutzen kannst, benötigst Du natürlich Perl, da es ein Perl-Skript ist, sowie das Programm exiv2.

Skript

Hier das Skript:

#!/usr/bin/perl -w
#
# 2009 http://www.doc-network.de
#
# This scripts set the exif artist and the exif copyright for
# images passed at command line arguments.
# The files are also renamed. The rename-scheme can be freely
# defined.
#
# This script is a modified version of Kim Briggs's rename
# script, which can be found at
# http://kimbriggs.com/computers/computer-software/rename-jpg-timestamp-exif-data.file
#

use strict;

# Variable definitions
my $artist = "NAME";
my $artist_short = "SHORT_NAME";
my $namescheme = "%Y-%m-%d_%H%M%S_:basename:_$artist_short";

# don't touch anything beyond this line unless you know what
# you're doing
my $file = "";

foreach my $arg ( 0 .. $#ARGV )
{
	$file = $ARGV[ $arg ];
	if ( -e $file )
	{
		if ( ( -r $file ) &&  ( -w $file ) )
		{
			print "File '$file'... ";
			system( "exiv2 -M'set Exif.Image.Artist $artist' $file" );
			system( "exiv2 -M'set Exif.Image.Copyright Copyright by $artist' $file" );
			system( "exiv2 -r $namescheme $file" );
			print "done\n";
		}
		else
		{
			print "File '$file' is not read/writable!\n";
		}
	}
	else
	{
		print "File '$file' does not exist!\n";
	}
}

Verwendung

Die umzubenennenden Dateien werden einfach per Kommandozeilenparameter übergeben. Ich nutze meistens

exifrename
 find -iname "*.jpg" | xargs ./<scriptname>

Damit werden alle Dateien mit der Endung jpg in allen Unterverzeichnissen umbenannt. Sonderzeichen in Dateinamen haben bei mir bis auf die runden Klammern ( bzw. ) funktioinert.

Viel Spaß mit dem Skript!

Kommentar 
Code   319 <- Bitte diesen Code eingeben!
Autor