exif(1)

πŸ“¦
version 0.6.22 Β· 2 versions
, in debian bookworm, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu jammy, ubuntu noble

exif(1) β€” command line front-end to libexif πŸ’…βœ¨

okay so bestie, listen. your girl is about to explain exif(1) and it's genuinely gonna change how you look at every JPEG your camera ever spat out. this page is the manual page for the exif utility. that's the name. exif. one. iconic. 🌸


πŸŽ€ NAME πŸŽ€

exif β€” shows EXIF information in JPEG files πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

exif [ OPTION ] [ file... ]

✨ DESCRIPTION ✨

okay so exif is a small command-line utility β€” like, tiny, adorable, does one job β€” and that job is to show and change EXIF information in JPEG files. that's it. that's the whole vibe. 🫢

Most digital cameras produce EXIF files, which are JPEG files with extra tags that contain information about the image. and exif is the little queen that lets you read EXIF information from those files and write EXIF information to them. under the hood? she's using the libexif library. no cap. πŸ’œ

Each input file you hand her on the command line is acted upon in turn, using all the options given. and heads up β€” execution will be aborted immediately if one file is not readable or does not contain EXIF tags. so like, one bad file and it's over. periodt. 😭

As EXIF tags are read, any unknown ones are discarded, and known ones are automatically converted into the correct format if they aren't already. Corrupted MakerNote tags are also removed β€” but no format changes are made. she's cleaning house, bestie. 🧚


πŸ‘‘ OPTIONS πŸ‘‘

  • -v, --version β€” Display the exif version number. quick lil flex. ✨
  • -i, --ids β€” Show ID numbers instead of tag names. numbers girlie behavior. πŸ”’
  • -t, --tag=TAG β€” Select only this TAG. TAG is the tag title, the short tag name, or the tag number (hexadecimal numbers are prefixed with 0x), from the IFD specified with --ifd. and the tea is: the tag title is dependent on the current locale, whereas name and number are locale-independent. so if you want it to work everywhere, use name or number, bestie. 🌍
  • --ifd=IFD β€” Select a tag or tags from this IFD. Valid IFDs are "0", "1", "EXIF", "GPS", and "Interoperability". Defaults to "0". so that's where she starts if you don't say anything. πŸ’«
  • -l, --list-tags β€” List all known EXIF tags and IFDs. A JPEG image must be provided, and those tags which appear in the file are shown with an asterisk in the corresponding position in the list. cute little star moment. ⭐
  • -|, --show-mnote β€” Show the contents of the MakerNote tag. and oof, the contents of this tag are nonstandard (and often undocumented) and may therefore not be recognized, or if they are recognized they may not necessarily be interpreted correctly. so like... proceed with caution, she's chaotic. πŸ’€
  • --remove β€” Remove the tag, or (if no tag is specified) the entire IFD. gone. deleted. no trace. πŸ—‘οΈ
  • -s, --show-description β€” Show description of tag. the --tag option must also be given. non-negotiable, bestie. πŸŽ€
  • -e, --extract-thumbnail β€” Extract the thumbnail, writing the thumbnail image to the file specified with --output. ✨
  • -r, --remove-thumbnail β€” Remove the thumbnail from the image, writing the new image to the file specified with --output. 🌈
  • -n, --insert-thumbnail=FILE β€” Insert FILE as thumbnail. and listen: no attempt is made to ensure that the contents of FILE are in a valid thumbnail format. she trusts you. do not betray her trust. πŸ™ˆ
  • --no-fixup β€” Do not attempt to fix EXIF specification violations when reading tags. When used in conjunction with --create-exif, this option inhibits the creation of the mandatory tags. otherwise (i.e. without this flag) exif will remove illegal or unknown tags, add some mandatory tags using default values, and change the data type of some tags to match that required by the specification. she's a fixer. let her fix. πŸ’…
  • -o, --output=FILE β€” Write output image to FILE. If this option is not given and an image file must be written, the name used is the same as the input file with the suffix ".modified.jpeg". so she names it herself. main character energy. πŸ‘‘
  • --set-value=VALUE β€” Set the data for the tag specified with --tag and --ifd to VALUE. Compound values consisting of multiple components are separated with spaces. πŸ“
  • -c, --create-exif β€” Create EXIF data if it does not exist. Mandatory tags are created with default values unless the --no-fixup option is given. This option can be used instead of specifying an input file name in most cases, to operate on the default values of the mandatory set of EXIF tags. and in that case, the --output option has no effect and no file is written. noted. ✍️
  • -m, --machine-readable β€” Produce output in a machine-readable (tab-delimited) format. the --xml-output and --machine-readable options are mutually exclusive. pick a lane bestie, you cannot have both. 😀
  • -w, --width=N β€” Set the maximum width of the output to N characters (default 80). This does not apply to some output formats (e.g. XML). XML said "I don't do rules." πŸ’€
  • -x, --xml-output β€” Produce output in an XML format (when possible). The --xml-output and --machine-readable options are mutually exclusive. Note that the XML schema changes with the locale, and it sometimes produces invalid XML. > This option is not recommended. yeah. she said what she said. 🚩
  • -d, --debug β€” Show debugging messages. Also, when processing a file that contains corrupted data, this option causes exif to attempt to continue processing. Normally, corrupted data causes an abort. so this is the "we die like adults, keep going" flag. πŸ”₯

πŸ’œ Help options πŸ’œ

  • -?, --help β€” Show help message. 🫢
  • --usage β€” Display brief usage message. short and sweet. ✨

🌈 EXAMPLES 🌈

Display all recognized EXIF tags in an image and the tag contents, with bad tags fixed:

exif image.jpg

Display a table listing all known EXIF tags and whether each one exists in the given image:

exif --list-tags --no-fixup image.jpg

Display details on all XResolution tags found in the given image:

exif --tag=XResolution --no-fixup image.jpg

Display the raw contents of the "Model" tag in the given image (with a newline character appended):

exif --ifd=0 --tag=Model --machine-readable image.jpg

Extract the thumbnail into the file thumbnail.jpg:

exif --extract-thumbnail --output=thumbnail.jpg image.jpg

Display a list of the numeric values of only the EXIF tags in the thumbnail IFD (IFD 1) and the tag values:

exif --ids --ifd=1 --no-fixup image.jpg

Display the meaning of tag 0x9209 in the "EXIF" IFD according to the EXIF specification:

exif --show-description --ifd=EXIF --tag=0x9209

Add an Orientation tag with value "Bottom-left" (4) to an existing image, leaving the existing tags untouched:

exif --output=new.jpg --ifd=0 --tag=0x0112 --set-value=4 --no-fixup image.jpg

Add a YCbCr Sub-Sampling tag with value 2,1 (a.k.a YCbCr 4:2:2) to an existing image and fix the existing tags, if necessary:

exif --output=new.jpg --tag=YCbCrSubSampling --ifd=0 --set-value='2 1' image.jpg

Remove the "User Comment" tag from an image:

exif --output=new.jpg --remove --tag="User Comment" --ifd=EXIF image.jpg

Display a table with all known EXIF tags, highlighting mandatory ones:

exif -cl

🌸 AUTHOR 🌸

exif was written by Lutz Mueller <lutz@users.sourceforge.net> and numerous contributors. she was not built alone, bestie, it took a village. πŸ’–

This man page is Copyright Β© 2002-2012 Thomas Pircher, Dan Fandrich and others.


⭐ SEE ALSO ⭐

ngl bestie... this section is literally empty in the original. nothing. no cross-references. a whole blank space. πŸ’€ she's self-made. she doesn't need anybody. πŸ‘‘


and that's the whole page!! πŸ’… she's exif(1), the command line front-end to libexif, and now you know her better than your camera does. go read some tags, go write some tags, go be the main character of your own JPEGs. mwah. 🫢✨