Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Как переименовать фото в соответствии с датой-временем файла или съёмки

Просмотров: 7136 RSS Обсудить
Linux

Для фотографий (из EXIF или даты файла)

Фотографии отличаются от "просто файлов" тем, что у них может быть внутри дополнительная информация - EXIF. Для переименования всех фотографий в текущей папке из невразумительных имен IMAGE01234.jpg во что-то наподобие 2012-08-12-235516.jpg делаем так:

#!/bin/bash
jhead -n%Y-%m-%d-%H%M%S *.{jpg,jpeg,JPG,JPEG}

jhead -n ищет данные сначала в EXIF, и если этой информации там нет, то берет за основу дату-время файла.

Файлы любых других типов (по дате файла)

Для любых других файлов (логов и так далее) используем ls -l (приведенному скрипту надо указать имя файла):

#!/bin/bash
mv "$file" `ls -l "$1" | awk '{ print $6"_"$7 }' | tr ':' '-'`.jpg

Если файлов много, то то же самое в цикле

#!/bin/bash
for file in *.jpg *.jpeg *.JPG *.JPEG; do
    mv "$file" `ls -l "$file" | awk '{ print $6"_"$7 }' | tr ':' '-'`.jpg
done

Мой текущий ~/bin/dts полностью

#!/bin/bash
## Rename all known media files to their DTS (date/time stamp)
## ATTN: renames ALL files in current directory, no backups or ability to restore old filename
## <hr /><hr />-- JPEG <hr /><hr /><hr />--
jhead -n%Y-%m-%d-%H%M%S *.{jpg,jpeg,JPG,JPEG}
## <hr /><hr />-- PNG  <hr /><hr /><hr />--
for file in *.png *.PNG; do
	mv "$file" `ls -l --full-time "$file" | awk '{ print $6"_"$7 }' | tr ':' '-'`.png
done
## <hr /><hr />-- 3GP <hr /><hr /><hr />--
for file in *.3gp; do
	mv "$file" `ls -l --full-time "$file" | awk '{ print $6"_"$7 }' | tr ':' '-'`.3gp
done
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)