Fast and easy renaming of NEFs.
Kiedyś, bardzo dawno temu, obiecałem, że na tym blogu będą się pojawiać głównie wpisy dotyczące Linuksa… No więc czas dodać pierwszy! No dobrze – znowu nawiążemy do fotografii ale od trochę innej strony.
Some time ago I promised that this blog would be about Linux… Well, then it’s time for my first post related to it! Ok, it’s photography related too but from a little different side.
Jako podstawowego systemu używam Linuksa, a więc i zdjęcia obrabiam na tym systemie. Z biegiem lat zrobiłem sobie kilka usprawnień, które pomagają mi w pracy ze zdjęciami. Poniżej jeden z nich – prosty jednolinijkowiec, „oneliner”, w shellu, który pozwala mi szybko zmienić nazwy plików NEF po skopiowaniu ich na dysk.
Linux is my base system at home, so also the photos are being processed on it. Through the year I made myself a few aids that help me when I’m working with photos. One of them is the below shell oneliner that allows me to quickly change NEF file names after copying them to my disk.
Nazwy _DSC1234.NEF tworzone przez Nikony nie są zbyt przyjazne na co dzień. Problem pojawia się zwłaszcza kiedy dojdziemy do _DSC9999.NEF. Następny plik będzie miał nazwę _DSC0001.NEF i może się okazać, ze pliki są wyświetlane w niewłaściwej kolejności. Poniższe polecenie wyciąga z EXIFa datę i godzinę zrobienia zdjęcia i wpisuje je zamiast ciągu znaków „_DSC” – na przykład 20210224_120052_9936.NEF. Po spojrzeniu na nazwę mogę od razu stwierdzić, że zdjęcie zostało zrobione 24 lutego 2021 roku o godzinie 12:00:52. Numer sekwencyjny zdjęcia zostawiam bo aparaty potrafią robić kilka zdjęć na sekundę, więc albo kilka plików musiałoby mieć tą samą nazwę (co jest niemożliwe), albo trzeba byłoby znaleźć inny sposób ich rozróżniania, a tak bez zbędnych ceregieli jest przejrzyście.
for zdjecie in _DSC*.NEF; do mv ${zdjecie} $(echo ${zdjecie} | sed s/_DSC/$(exiftool -createdate ${zdjecie} | gawk 'BEGIN{a[4]=a[5]} {for(x in a)gsub(":","",$x); print $4"_"$5}')_/g); done
Names like _DSC1234.NEF that are created by Nikons are not very friendly in every day use. There is especially a problem when you get to _DSC9999.NEF. The next file will be named _DSC0001.NEF and files may be displayed in a wrong order. Above command extracts creation date and time from EXIF and puts them in place of „_DSC” – for example you can get 20210224_120052_9936.NEF. After a look on the name I can immediately tell that the photo was take on 24 February 2021 at 12:00:52. I leave the sequential number of a photo because cameras can take several photos during a second, so either a few files would have to have the same name (what is impossible) or I would need to find another way to differentiate the names – but this way is very clean and works for me.
Co o tym sądzicie? Przydatna rzecz czy niekoniecznie? A Wy zmieniacie nazwy plików czy zostajecie przy domyślnych? Dajcie znać w komentarzach.
What do you think? Is that oneliner helpful on not? Do you change filenames or do you stick to the default ones? Let me know in the comments.