The Metadata Tool Every Photographer Should Know — and How to Install It

ExifTool is the gold-standard command-line tool for reading and stripping image metadata — this walks through installing it on a Mac via Homebrew, including the Apple Silicon PATH fix that stops many first-time installs cold.

Screenshot of ExifTool in Terminal on Mac displaying image metadata
Text & Photos By David Coleman
Last Revised & Updated:
Filed Under: Photography Gear

I MAY get commissions for purchases made through links in this post.

Have Camera Will Travel // Newsletter

Practical field notes, hands-on gear tests.

ExifTool by Phil Harvey is the gold standard for working with image metadata — and if you shoot raw, deal with GPS data, use stock agencies, or care about what’s embedded in your files before sharing them online, it’s worth knowing about.

It can read, write, and manipulate virtually every type of metadata across hundreds of file formats. And it’s free and open-source.

The potential sticking point is that it’s a command-line tool with no graphical interface. That can seem intimidating at first, but it also means it’s extremely fast for batch operations and combines well with other tools like ImageMagick and macOS’s built-in utilities. Which opens up some genuinely useful photography workflow possibilities.

Here’s how to get it installed on a Mac.

If you already have Homebrew on your Mac, the whole job is one command — brew install exiftool — and you can skip straight to Step 2. If you don’t have Homebrew yet, that’s the part that takes the time, and it’s covered first below.

What ExifTool actually does

ExifTool is highly specialized: it only deals with metadata. It won’t resize images or convert file formats. But when it comes to metadata, nothing else comes close.

Despite the name, it goes well beyond EXIF. It handles IPTC, XMP, GPS, JFIF, Maker Notes, ICC profiles, and a long list of other metadata types. If something is embedded in an image file, there’s a very good chance ExifTool can read it — and usually write it too. It works with raw files, JPEGs, TIFFs, DNGs, PDFs, video files, and more.

Phil Harvey first released it in 2003 and has maintained it actively ever since. It’s used by photographers, archivists, forensic analysts, and anyone else who needs reliable, non-destructive access to what’s actually inside their files.

Installing ExifTool via Homebrew

There are a few ways to install ExifTool on Mac, but Homebrew is the method I’d recommend. It’s straightforward, keeps ExifTool easy to update, and is consistent with how you’d install other command-line image tools like ImageMagick.

Homebrew isn’t a third-party rebuild, if you’re wondering: the exiftool formula packages Phil Harvey’s own Perl distribution from exiftool.org, so you get the official tool with the update handling done for you. The alternative is the macOS .pkg installer on that same site, which puts exiftool in /usr/local/bin and works fine — you just have to come back and download a new package each time you want a newer version.

Step 1: Install or update Homebrew

If you don’t have Homebrew installed yet, open Terminal and run:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

You can copy and paste this directly into Terminal — no need to retype it. Make sure the closing quotation mark is included. Homebrew will walk you through the process and tell you what it’s doing at each step.

At some point, it will ask for your administrator password (sudo access) to run the necessary scripts. That’s normal — type your Mac login password and press Enter. Nothing will appear on screen as you type; that’s intentional.

Mac Terminal window running the Homebrew install script and prompting for a sudo password

You’ll see a stream of output as Homebrew downloads and installs its components. That’s all normal.

One thing to know for a first-time install: Homebrew starts by downloading Apple’s Command Line Tools, which it needs to work. That’s a multi-gigabyte download, and it can sit for long stretches looking like nothing is happening. It’s not stuck — on a slower connection, this step alone can take 20 minutes or more.

Terminal output showing Homebrew installer setting permissions and creating /usr/local/Homebrew directories
Terminal showing Homebrew's git repository being updated with a list of new version tags

When it’s done, you’ll see a success message.

Terminal displaying an Installation successful message after Homebrew finishes installing on a Mac

Apple Silicon note: If you’re on an M-series Mac (M1, M2, M3, M4), Homebrew installs to /opt/homebrew/ rather than /usr/local/. After installation, Homebrew will display a command to add itself to your PATH — copy and run that command before proceeding, or Homebrew commands won’t be recognized in Terminal.

In practice that’s two lines, run one after the other: echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile and then eval "$(/opt/homebrew/bin/brew shellenv)". The first adds Homebrew to your PATH for every new Terminal session; the second applies it to the window you’re in right now, so you don’t have to quit and reopen Terminal before carrying on.

If you already have Homebrew installed, just update it first:

brew update

Step 2: Install ExifTool

brew install exiftool

Homebrew downloads and installs the latest version along with any dependencies. Once it’s done, verify the installation with:

exiftool -ver

If ExifTool is installed correctly, this returns the version number. If you get a “command not found” error on an Apple Silicon Mac, you likely need to add Homebrew to your PATH first (see the note above).

A few ExifTool commands to try first

Rather than a comprehensive list here, I’m covering ExifTool’s most useful photography applications in separate guides. But here are a few commands to get a feel for it.

Read an image’s metadata

Navigate to the folder containing the image and run:

exiftool myimage.jpg

Replace myimage.jpg with your filename. ExifTool will output every metadata field it finds — camera model, lens, shutter speed, aperture, ISO, GPS coordinates if present, copyright fields, and much more.

Tip: Instead of navigating to the folder first, you can type exiftool (with a trailing space) and then drag the image file — or an entire folder — from Finder directly into the Terminal window. Terminal fills in the path automatically. Press Enter.

Terminal window showing ExifTool output listing a photo's lens spec, focal length, and depth of field metadata

Strip all metadata from an image

NB: This command overwrites the original file. Work on a copy.

U Min Thonze Pagoda Colonnade Interior Wide View Sagaing Myanmar. Photo by David Coleman - havecamerawilltravel.com

Have Camera Will Travel // Newsletter

Practical field notes, hands-on gear tests, and the fun of exploring the world with a camera in hand.

exiftool -all= -overwrite_original myimage.jpg

Useful before sharing images online when you don’t want GPS coordinates, client information, or stock agency keywords going out with the file. I have a more detailed guide to stripping metadata with ExifTool here, including batch processing and how to preserve the ICC color profile.

Worth knowing before you rely on it: ExifTool only touches the file you point it at. If you work in Lightroom or Bridge and have XMP sidecar files sitting next to your raws, stripping the image leaves the sidecar untouched and everything in it still readable. If the point is to hand over a clean set of files, deal with the sidecars separately.

Two default behaviors worth knowing. First, without the -overwrite_original flag, ExifTool keeps a backup of the untouched file alongside the changed one, named myimage.jpg_original. That’s the safety net, not a bug — the flag is how you decline it. Second, -all= really does mean all: it also strips the orientation flag that tells software which way up the photo goes, so a stripped image can suddenly display sideways. To strip everything but keep that flag:

exiftool -all= -tagsfromfile @ -Orientation -overwrite_original myimage.jpg

Pull up the manual

ExifTool’s full documentation is available directly in Terminal:

man exiftool

Or browse the official ExifTool website for the complete command reference and examples. It’s extensive, but the search function makes it navigable.

Command recipes for common photography tasks

Once ExifTool is installed, the fastest way to learn it is to use it. Here are recipes for jobs photographers actually run into.

I’ve tested each one as written, but it’s always possible that software updates might change things. And I strongly recommend working on copies — not your masters — at least until you’re very confident that it’s actually working as you want it to.

The ones that change files modify them in place — work on copies until you trust what a command does. myimage.jpg stands in for your own filename.

What you want to doCommand
See the key shooting settings at a glanceexiftool -common myimage.jpg
See which camera and lens took a shotexiftool -Model -LensModel myimage.jpg
Check whether (and where) a photo is geotaggedexiftool -GPSPosition myimage.jpg
Remove the GPS location but keep everything elseexiftool -gps:all= -overwrite_original myimage.jpg
Add your name and copyright to every JPEG in a folderexiftool -Artist="David Coleman" -Copyright="© David Coleman" -overwrite_original *.jpg
Fix timestamps after a timezone slip (here, +5 hours)exiftool -AllDates+=5 -overwrite_original *.jpg
Rename files to the date they were takenexiftool '-FileName<DateTimeOriginal' -d '%Y%m%d-%H%M%S%%-c.%%e' *.jpg
Export a folder’s settings to a spreadsheetexiftool -csv -FileName -Model -LensModel -FocalLength -FNumber -ExposureTime -ISO . > settings.csv
Count how many shots each camera tookexiftool -T -Model . | sort | uniq -c | sort -rn
Pull the full-size JPEG preview out of a raw fileexiftool -b -JpgFromRaw myraw.nef > preview.jpg (Nikon; on other brands try -PreviewImage)

Two switches worth knowing for all of these: add -r to include subfolders, and -ext jpg (or -ext nef, and so on) to limit a command to one file type.

Using ExifTool to check a camera’s shutter count

A camera’s shutter count is its odometer. It matters most when buying or selling used gear — a body rated for 200,000 actuations that has already done 180,000 is a different proposition from one that has done 15,000. It’s also a way to gauge how hard you’re actually working your own cameras and to budget for upgrade plans.

Many cameras record the count in every photo’s maker notes. Take a fresh photo, copy it straight off the card — unedited, since exporting from Lightroom or other editors usually strips this data — and run:

exiftool -ShutterCount myphoto.nef

If that comes back empty, try this to look for anything count-related:

exiftool -s "-*Count*" myphoto.nef

Whether this works depends on the brand. From my own testing: Nikon writes it (DSLRs and Z bodies), Sony does on many models, and Canon’s mirrorless bodies record it in their CR3 files — though Canon DSLRs generally don’t, and need a USB utility instead. Pentax DSLRs generally write it as well. Fujifilm stores only a frame counter (ImageCount) that doesn’t reliably reflect total actuations. Many compacts record nothing at all.

One key wrinkle that matters for newer cameras: electronic shutters. Cameras that can shoot electronically may report separate values. A raw file from my Nikon Z8 shows ShutterCount: 29018 alongside MechanicalShutterCount: 0 — the Z8 has no mechanical shutter at all. On hybrid bodies, a low mechanical count doesn’t necessarily mean light use, but the flip side is that electronic actuations don’t wear a mechanism the way mechanical ones do, so it’s less of a factor in determining the wear and tear on a camera. And the count is actuations; it, of course, has nothing to do with what photos you actually kept.

For Nikon DSLRs specifically — including the online services that read the count for you, no Terminal required — see my guide to finding the shutter count on Nikon DSLRs.

Keeping ExifTool updated

Phil Harvey updates ExifTool regularly — usually to add support for new camera models and RAW formats. With Homebrew, staying current is a single command:

brew upgrade exiftool

Or to update all your Homebrew-installed tools at once (this is what I prefer):

brew upgrade
Found this helpful? Personalize your search results.
Add as Preferred Source