How to Use ExifTool: A Complete Beginner's Guide

Read, edit and remove metadata with confidence. This beginner-friendly walkthrough explains ExifTool's command structure with practical examples.

How to Use ExifTool: A Complete Beginner's Guide illustration

ExifTool looks intimidating at first because it has no buttons or menus. In practice, almost everything you need comes from a handful of short commands that follow the same simple pattern. This guide teaches that pattern and walks through the tasks people perform most often, from reading a single photo to processing an entire folder. If you have not installed ExifTool yet, follow the installation steps on the homepage first.

Understanding the command structure

Every ExifTool command has the same three parts: the program name, optional options, and one or more files or folders.

$ exiftool [options] file-or-folder

Options start with a hyphen. Some options control output, such as -s for short tag names, while others name a tag you want to read or write, such as -Artist. Tag names are not case-sensitive, so -artist works too. On Windows with the Perl distribution, put perl in front of the program name, as in perl exiftool image.jpg.

Reading metadata

The simplest command prints every tag ExifTool finds:

$ exiftool photo.jpg

The output can be long. To make it easier to scan, combine a few display options:

$ exiftool -s -G1 photo.jpg

-s shows the internal tag names you use in commands, and -G1 prefixes each line with the specific group, such as [ExifIFD] or [XMP-dc]. To read just a few tags, name them:

$ exiftool -Model -DateTimeOriginal -ISO -ExposureTime photo.jpg

Add -a to show duplicate tags from different groups. This matters when, for example, a date exists in both EXIF and XMP with different values.

Reading only one metadata group

Use a group name followed by :all to limit output. exiftool -exif:all photo.jpg shows EXIF tags only, while -xmp:all, -iptc:all and -gps:all do the same for other groups.

Writing and editing tags

To write a tag, add an equals sign and the new value. Wrap values containing spaces in quotation marks.

$ exiftool -Artist="Jane Doe" -Copyright="© 2026 Jane Doe" photo.jpg

ExifTool reports how many files were updated and creates a backup named photo.jpg_original. Keywords and other list-type tags accept multiple values. Use += to add an item without replacing the existing ones:

$ exiftool -Keywords+="travel" -Keywords+="mountains" photo.jpg

Shifting dates and times

If your camera clock was wrong, shift all main date tags at once. This example adds one hour:

$ exiftool "-AllDates+=1:00" photo.jpg

Copying metadata between files

The -TagsFromFile option copies metadata from one file to another, which is useful after editing a photo in software that discarded the original information:

$ exiftool -TagsFromFile original.jpg -all:all edited.jpg

Removing metadata

Assigning an empty value deletes a tag. To remove everything writable, use -all=:

$ exiftool -all= photo.jpg

To remove a single group, target it directly, for example exiftool -gps:all= photo.jpg for location data. Our dedicated guide to removing GPS metadata with ExifTool covers that topic in depth.

Some metadata, such as colour profiles, affects how an image is displayed. If colours look different after -all=, keep the ICC profile with exiftool -all= -tagsfromfile @ -icc_profile photo.jpg.

Working with many files

Pass a folder instead of a file to process every supported file inside it. Add -r to include subfolders and -ext to choose file types:

$ exiftool -r -ext jpg -ext cr3 -Artist="Jane Doe" ./photos

You can also use conditions. The following command lists only files taken with ISO above 1600:

$ exiftool -if "$ISO > 1600" -FileName -ISO ./photos

ExifTool can rename files based on metadata, too. This renames each photo to its capture date and time while keeping the original extension:

$ exiftool "-FileName<DateTimeOriginal" -d "%Y-%m-%d_%H%M%S%%-c.%%e" ./photos

Exporting metadata

ExifTool writes structured output that other programs can read. Use JSON for scripts and web tools, or CSV for spreadsheets:

$ exiftool -json photo.jpg > photo.json
$ exiftool -csv -r ./photos > metadata.csv

Useful options to remember

  • -overwrite_original writes changes without creating backups. Use it only once you trust your command.
  • -n shows raw numeric values, for example decimal GPS coordinates instead of degrees and minutes.
  • -ver prints the installed ExifTool version.
  • -h prints output as HTML, while -X produces RDF/XML.
  • -progress shows progress while processing large folders.

Practise each command on copies of your files and you will quickly feel at home. When you are ready for more, explore the essential commands on the homepage or see how ExifTool handles video metadata.