Read and write meta information in files
Output a tab-delimited list of description/values (useful for database import). May be combined
with -s to print tag names instead of descriptions, or -S to print tag values only, tab-delimited on
a single line. The -t option may also be used to add tag table information to the -X option output.
Use HTML table formatting for output. Implies the -E option. The formatting options -D, -H, -g,
-G, -l and -s may be used in combination with -h to influence the HTML format.
Extract values of unknown tags. Add another -u to also extract unknown information from binary data
blocks. This option applies to tags with numerical tag ID's, and causes tag names like
"Exif_0xc5d9" to be generated for unknown information. It has no effect on information types which
have human-readable tag ID's (such as XMP), since unknown tags are extracted automatically from
Ignore minor errors and warnings. This enables writing to files with minor errors and disables some
validation checks which could result in minor warnings. Generally, minor errors/warnings indicate a
problem which usually won't result in loss of metadata if ignored. However, there are exceptions,
so ExifTool leaves it up to you to make the final decision.
Output requested data in binary format without tag names or descriptions. This option is mainly
used for extracting embedded images or other binary data, but it may also be useful for some text
strings since control characters (such as newlines) are not replaced by '.' as they are in the
default output. Also valid in combination with the "-X" option.
Read and write values as numbers instead of words. By default, extracted values are converted to a
more human-readable format for printing, but the -n option disables this print conversion for all
tags. For example:
-a (-duplicates) Allow duplicate tags to be extracted
-e (--composite) Do not calculate composite tags
-ee (-extractEmbedded) Extract information from embedded files
-ext EXT (-extension) Process files with specified extension
-F[OFFSET] (-fixBase) Fix the base for maker notes offsets
-fast[NUM] Increase speed for slow devices
-fileOrder [-]TAG Set file processing order
-i DIR (-ignore) Ignore specified directory name
-if EXPR Conditionally process files
-m (-ignoreMinorErrors) Ignore minor errors and warnings
-o OUTFILE (-out) Set output file or directory name
-overwrite_original Overwrite original by renaming tmp file
-overwrite_original_in_place Overwrite original by copying tmp file
-P (-preserve) Preserve date/time of original file
-password PASSWD Password for processing protected files
-q (-quiet) Quiet processing
-r (-recurse) Recursively process subdirectories
-scanForXMP Brute force XMP scan
-u (-unknown) Extract unknown tags
-U (-unknown2) Extract unknown binary tags too
-z (-zip) Read/write compressed information
-i DIR (-ignore)
Ignore specified directory name. Use multiple -i options to ignore more than one directory name. A
special DIR value of "SYMLINKS" (case sensitive) may be specified to ignore symbolic links when the
-r option is used.
Use long 2-line Canon-style output format. Adds a description and unconverted value to the XML
output when -X is used.
Extract existing tags only -- don't calculate composite tags.
A pipeline is a sequence of one or more commands separated by one of the control operators | or |&. The
format for a pipeline is:
[time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]
The standard output of command is connected via a pipe to the standard input of command2. This
connection is performed before any redirections specified by the command (see REDIRECTION below). If |&
is used, the standard error of command is connected to command2's standard input through the pipe; it is
shorthand for 2>&1 |. This implicit redirection of the standard error is performed after any
redirections specified by the command.
The return status of a pipeline is the exit status of the last command, unless the pipefail option is
enabled. If pipefail is enabled, the pipeline's return status is the value of the last (rightmost)
command to exit with a non-zero status, or zero if all commands exit successfully. If the reserved word
! precedes a pipeline, the exit status of that pipeline is the logical negation of the exit status as
described above. The shell waits for all commands in the pipeline to terminate before returning a value.
If the time reserved word precedes a pipeline, the elapsed as well as user and system time consumed by
its execution are reported when the pipeline terminates. The -p option changes the output format to that
specified by POSIX. When the shell is in posix mode, it does not recognize time as a reserved word if
the next token begins with a `-'. The TIMEFORMAT variable may be set to a format string that specifies
how the timing information should be displayed; see the description of TIMEFORMAT under Shell Variables
When the shell is in posix mode, time may be followed by a newline. In this case, the shell displays the
total user and system time consumed by the shell and its children. The TIMEFORMAT variable may be used
to specify the format of the time information.
Each command in a pipeline is executed as a separate process (i.e., in a subshell).