Aqui está uma resposta para a questão bônus.
I actually want to put a photo's creation date into its filename, to get something like 20091231 2359 New Year.jpg. I'm afraid that I need some non-trivial combination of commands to achieve that?
Supondo que você queira tirar a data de criação da foto dos dados EXIF, você precisará de uma ferramenta separada para isso. Felizmente, verifica-se que o jhead
oferece uma maneira trivial de fazer exatamente o que você quer, com seu -n
opção.
$ jhead -h
[...]
-n[format-string]
Rename files according to date. Uses exif date if present, file
date otherwise. If the optional format-string is not supplied,
the format is mmdd-hhmmss. If a format-string is given, it is
is passed to the 'strftime' function for formatting
In addition to strftime format codes:
'%f' as part of the string will include the original file name
[...]
Veja um exemplo:
$ jhead -n%Y-%m-%d-%f New_year.jpg
New_year.jpg --> 2009-12-31-New_year.jpg
Editar : claro, para fazer isso para um monte de fotos, seria algo como:
$ for i in *jpg; do jhead -n%Y-%m-%d-%f $i; done
Para ajustar a formatação da data ao seu gosto, observe a saída de date --help
, por exemplo; listará os códigos de formato disponíveis.
(o jhead é amplamente disponível para sistemas diferentes. Se você está, por exemplo, no Ubuntu ou Debian, simplesmente digite sudo apt-get install jhead
para instalá-lo.)