A Simple Bash Script to Download and Organize Photos
Productivity Sauce
When it comes to dowloading photos from a storage card and organizing them in the process, Rapid Photo Downloader is just the ticket. But if you prefer to do that from the command line, here is a simple Bash script cobbled together by yours truly.
#!/bin/bash SOURCE_DIR="/media/NIKOND5000/DCIM/100D5000" WORK_DIR=TMP TARGET_DIR=Photos cp -R $SOURCE_DIR $WORK_DIR cd $WORK_DIR exiftool -r -d ../$TARGET_DIR/%Y%m%d/%Y%m%d-%H%M%S- '-FileName<$dateTimeOriginal$MyShutterCount.NEF' -ext NEF ../$WORK_DIR rm -rf ../TMP
The script copies photos from a mounted storage device like an SD card to the TMP folder, organizes the photos into folders by date, and then renames each photo using the data pulled from the photo's metadata. Photos are renamed using the YYYYMMDD-HHMMSS-ShutterCount.EXT format, so the resulting file name looks something like this: 20102019-135547-3375.NEF.
There are two things required for this script to work. First of all, you need to install the exiftool package which the script uses to extract relevant metadata, arrange photos, and rename them. exiftool is available in the software repositories of many mainstream Linux distributions, so you can install it using your distro's package manager. On Ubuntu, you can do this by executing the command below:
sudo apt-get install libimage-exiftool-perl
You also need to create the .ExifTool_config file in your home directory, and put the following function in it:
%Image::ExifTool::UserDefined = ( 'Image::ExifTool::Composite' => { MyShutterCount => { Require => 'ShutterCount', ValueConv => 'substr("$val", 0)', }, }, ); 1; #end
Adding the .ExifTool_config file is required only if you want to include the shutter count value in the file names. In case you use another renaming rule, you can skip this step.
Before you start using the script, specify the correct SOURCE_DIR value and the file format (e.g., RAW, CR2, or JPG).
That's all there is to it. Insert the card with photos, run the script, and it will download the photos, arrange them into folders, and rename them.
Sources:
http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,2320.0.html
http://owl.phy.queensu.ca/~phil/exiftool/config.html
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Juno Computers Launches Another Linux Laptop
If you're looking for a powerhouse laptop that runs Ubuntu, the Juno Computers Neptune 17 v6 should be on your radar.
-
ZorinOS 17.1 Released, Includes Improved Windows App Support
If you need or desire to run Windows applications on Linux, there's one distribution intent on making that easier for you and its new release further improves that feature.
-
Linux Market Share Surpasses 4% for the First Time
Look out Windows and macOS, Linux is on the rise and has even topped ChromeOS to become the fourth most widely used OS around the globe.
-
KDE’s Plasma 6 Officially Available
KDE’s Plasma 6.0 "Megarelease" has happened, and it's brimming with new features, polish, and performance.
-
Latest Version of Tails Unleashed
Tails 6.0 is based on Debian 12 and includes GNOME 43.
-
KDE Announces New Slimbook V with Plenty of Power and KDE’s Plasma 6
If you're a fan of KDE Plasma, you'll be thrilled to hear they've announced a new Slimbook with an AMD CPU and the latest version of KDE Plasma desktop.
-
Monthly Sponsorship Includes Early Access to elementary OS 8
If you want to get a glimpse of what's in the pipeline for elementary OS 8, just set up a monthly sponsorship to help fund its continued existence.
-
DebConf24 to be Held in South Korea
Busan will be the location of the latest DebConf running July 28 through August 4
-
Fedora Unleashes Atomic Desktops
Fedora has combined its solid distribution with rpm-ostree system to make it possible to deliver a new family of Fedora spins, called Fedora Atomic Desktops.
-
Bootloader Vulnerability Affects Nearly All Linux Distributions
The developers of shim have released a version to fix numerous security flaws, including one that could enable remote control execution of malicious code under certain circumstances.