12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519 |
- <?xml version="1.0" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>exiftool Application Documentation</title>
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <link rev="made" href="mailto:_securityagent@gamma.local" />
- </head>
- <body style="background-color: white">
- <table border="0" width="100%" cellspacing="0" cellpadding="3">
- <tr><td class="block" style="background-color: #cccccc" valign="middle">
- <big><strong><span class="block"> exiftool Application Documentation</span></strong></big>
- </td></tr>
- </table>
- <!-- INDEX BEGIN -->
- <div name="index">
- <p><a name="__index__"></a></p>
- <ul>
- <li><a href="#name">NAME</a></li>
- <li><a href="#synopsis">SYNOPSIS</a></li>
- <li><a href="#description">DESCRIPTION</a></li>
- <li><a href="#options">OPTIONS</a></li>
- <ul>
- <li><a href="#option_summary">Option Summary</a></li>
- <li><a href="#option_details">Option Details</a></li>
- <ul>
- <li><a href="#tag_operations">Tag operations</a></li>
- <li><a href="#input_output_text_formatting">Input-output text formatting</a></li>
- <li><a href="#processing_control">Processing control</a></li>
- <li><a href="#other_options">Other options</a></li>
- <li><a href="#special_features">Special features</a></li>
- <li><a href="#utilities">Utilities</a></li>
- <li><a href="#advanced_options">Advanced options</a></li>
- </ul>
- </ul>
- <li><a href="#windows_unicode_file_names">WINDOWS UNICODE FILE NAMES</a></li>
- <li><a href="#writing_read_only_files">WRITING READ-ONLY FILES</a></li>
- <li><a href="#reading_examples">READING EXAMPLES</a></li>
- <li><a href="#writing_examples">WRITING EXAMPLES</a></li>
- <li><a href="#copying_examples">COPYING EXAMPLES</a></li>
- <li><a href="#renaming_examples">RENAMING EXAMPLES</a></li>
- <li><a href="#geotagging_examples">GEOTAGGING EXAMPLES</a></li>
- <li><a href="#piping_examples">PIPING EXAMPLES</a></li>
- <li><a href="#diagnostics">DIAGNOSTICS</a></li>
- <li><a href="#author">AUTHOR</a></li>
- <li><a href="#see_also">SEE ALSO</a></li>
- </ul>
- <hr name="index" />
- </div>
- <!-- INDEX END -->
- <p>
- </p>
- <h1><a name="name">NAME</a></h1>
- <p>exiftool - Read and write meta information in files</p>
- <p>
- </p>
- <hr />
- <h1><a name="synopsis">SYNOPSIS</a></h1>
- <dl>
- <dt><strong><a name="exiftool_options_tag_tag_file" class="item"><strong>exiftool</strong> [<em>OPTIONS</em>] [-<em>TAG</em>...] [--<em>TAG</em>...] <em>FILE</em>...</a></strong></dt>
- <dt><strong><a name="exiftool_options_tag_value_file" class="item"><strong>exiftool</strong> [<em>OPTIONS</em>] -<em>TAG</em>[+-<]=[<em>VALUE</em>]... <em>FILE</em>...</a></strong></dt>
- <dt><strong><a name="exiftool_options_tagsfromfile_srcfile_srctag_dsttag_file" class="item"><strong>exiftool</strong> [<em>OPTIONS</em>] <strong>-tagsFromFile</strong> <em>SRCFILE</em>
- [-<em>SRCTAG</em>[><em>DSTTAG</em>]...] <em>FILE</em>...</a></strong></dt>
- <dt><strong><a name="exiftool_ver_list_w_f_r_wf_g_num_d_x" class="item"><strong>exiftool</strong> [ <strong>-ver</strong> |
- <strong>-list</strong>[<strong>w</strong>|<strong>f</strong>|<strong>r</strong>|<strong>wf</strong>|<strong>g</strong>[<em>NUM</em>]|<strong>d</strong>|<strong>x</strong>] ]</a></strong></dt>
- </dl>
- <p>For specific examples, see the <a href="#reading_examples">EXAMPLES</a> sections below.</p>
- <p>This documentation is displayed if exiftool is run without an input <em>FILE</em>
- when one is expected.</p>
- <p>
- </p>
- <hr />
- <h1><a name="description">DESCRIPTION</a></h1>
- <p>A command-line interface to <a href="ExifTool.html">Image::ExifTool</a>, used for
- reading and writing meta information in a variety of file types. <em>FILE</em> is
- one or more source file names, directory names, or <code>-</code> for the standard
- input. Metadata is read from source files and printed in readable form
- to the console (or written to output text files with <strong>-w</strong>).</p>
- <p>To write or delete metadata, tag values are assigned using the
- -<em>TAG</em>=[<em>VALUE</em>] syntax, or the <strong>-geotag</strong> option. To copy or move
- metadata, the <strong>-tagsFromFile</strong> feature is used. By default the original
- files are preserved with <code>_original</code> appended to their names -- be sure to
- verify that the new files are OK before erasing the originals. Once in
- write mode, exiftool will ignore any read-specific options.</p>
- <p>Note: If <em>FILE</em> is a directory name then only supported file types in the
- directory are processed (in write mode only writable types are processed).
- However, files may be specified by name, or the <strong>-ext</strong> option may be used
- to force processing of files with any extension. Hidden files in the
- directory are also processed. Adding the <strong>-r</strong> option causes subdirectories
- to be processed recursively, but those with names beginning with "." are
- skipped unless <strong>-r.</strong> is used.</p>
- <p>Below is a list of file types and meta information formats currently
- supported by ExifTool (r = read, w = write, c = create):</p>
- <pre>
- File Types
- ------------+-------------+-------------+-------------+------------
- 3FR r | DVB r/w | KEY r | ORF r/w | RWL r/w
- 3G2 r/w | DYLIB r | LA r | OTF r | RWZ r
- 3GP r/w | EIP r | LFP r | PAC r | RM r
- AA r | EPS r/w | LNK r | PAGES r | SEQ r
- AAX r/w | EPUB r | M2TS r | PBM r/w | SO r
- ACR r | ERF r/w | M4A/V r/w | PCD r | SR2 r/w
- AFM r | EXE r | MEF r/w | PDB r | SRF r
- AI r/w | EXIF r/w/c | MIE r/w/c | PDF r/w | SRW r/w
- AIFF r | EXR r | MIFF r | PEF r/w | SVG r
- APE r | EXV r/w/c | MKA r | PFA r | SWF r
- ARW r/w | F4A/V r/w | MKS r | PFB r | THM r/w
- ASF r | FFF r/w | MKV r | PFM r | TIFF r/w
- AVI r | FLA r | MNG r/w | PGF r | TORRENT r
- AZW r | FLAC r | MOBI r | PGM r/w | TTC r
- BMP r | FLV r | MODD r | PLIST r | TTF r
- BTF r | FPF r | MOI r | PICT r | VCF r
- CHM r | FPX r | MOS r/w | PMP r | VRD r/w/c
- COS r | GIF r/w | MOV r/w | PNG r/w | VSD r
- CR2 r/w | GZ r | MP3 r | PPM r/w | WAV r
- CRW r/w | HDP r/w | MP4 r/w | PPT r | WDP r/w
- CS1 r/w | HDR r | MPC r | PPTX r | WEBP r
- DCM r | HTML r | MPG r | PS r/w | WEBM r
- DCP r/w | ICC r/w/c | MPO r/w | PSB r/w | WMA r
- DCR r | ICS r | MQV r/w | PSD r/w | WMV r
- DFONT r | IDML r | MRW r/w | PSP r | WV r
- DIVX r | IIQ r/w | MXF r | QTIF r/w | X3F r/w
- DJVU r | IND r/w | NEF r/w | RA r | XCF r
- DLL r | INX r | NRW r/w | RAF r/w | XLS r
- DNG r/w | ITC r | NUMBERS r | RAM r | XLSX r
- DOC r | J2C r | ODP r | RAR r | XMP r/w/c
- DOCX r | JNG r/w | ODS r | RAW r/w | ZIP r
- DPX r | JP2 r/w | ODT r | RIFF r |
- DR4 r/w/c | JPEG r/w | OFR r | RSRC r |
- DSS r | K25 r | OGG r | RTF r |
- DV r | KDC r | OGV r | RW2 r/w |</pre>
- <pre>
- Meta Information
- ----------------------+----------------------+---------------------
- EXIF r/w/c | CIFF r/w | Ricoh RMETA r
- GPS r/w/c | AFCP r/w | Picture Info r
- IPTC r/w/c | Kodak Meta r/w | Adobe APP14 r
- XMP r/w/c | FotoStation r/w | MPF r
- MakerNotes r/w/c | PhotoMechanic r/w | Stim r
- Photoshop IRB r/w/c | JPEG 2000 r | DPX r
- ICC Profile r/w/c | DICOM r | APE r
- MIE r/w/c | Flash r | Vorbis r
- JFIF r/w/c | FlashPix r | SPIFF r
- Ducky APP12 r/w/c | QuickTime r | DjVu r
- PDF r/w/c | Matroska r | M2TS r
- PNG r/w/c | MXF r | PE/COFF r
- Canon VRD r/w/c | PrintIM r | AVCHD r
- Nikon Capture r/w/c | FLAC r | ZIP r
- GeoTIFF r/w/c | ID3 r | (and more)</pre>
- <p>
- </p>
- <hr />
- <h1><a name="options">OPTIONS</a></h1>
- <p>Case is not significant for any command-line option (including tag and group
- names), except for single-character options when the corresponding
- upper-case option exists. Many single-character options have equivalent
- long-name versions (shown in brackets), and some options have inverses which
- are invoked with a leading double-dash. Unrecognized options are
- interpreted as tag names (for this reason, multiple single-character options
- may NOT be combined into one argument). Contrary to standard practice,
- options may appear after source file names on the exiftool command line.</p>
- <p>
- </p>
- <h2><a name="option_summary">Option Summary</a></h2>
- <p><a href="#tag_operations">Tag operations</a></p>
- <pre>
- -TAG or --TAG Extract or exclude specified tag
- -TAG[+-]=[VALUE] Write new value for tag
- -TAG[+-]<=DATFILE Write tag value from contents of file
- -TAG[+-]<SRCTAG Copy tag value (see -tagsFromFile)</pre>
- <pre>
- -tagsFromFile SRCFILE Copy tag values from file
- -x TAG (-exclude) Exclude specified tag</pre>
- <p><a href="#input_output_text_formatting">Input-output text formatting</a></p>
- <pre>
- -args (-argFormat) Format metadata as exiftool arguments
- -b (-binary) Output metadata in binary format
- -c FMT (-coordFormat) Set format for GPS coordinates
- -charset [[TYPE=]CHARSET] Specify encoding for special characters
- -csv[=CSVFILE] Export/import tags in CSV format
- -d FMT (-dateFormat) Set format for date/time values
- -D (-decimal) Show tag ID numbers in decimal
- -E, -ex (-escape(HTML|XML)) Escape values for HTML (-E) or XML (-ex)
- -f (-forcePrint) Force printing of all specified tags
- -g[NUM...] (-groupHeadings) Organize output by tag group
- -G[NUM...] (-groupNames) Print group name for each tag
- -h (-htmlFormat) Use HMTL formatting for output
- -H (-hex) Show tag ID number in hexadecimal
- -htmlDump[OFFSET] Generate HTML-format binary dump
- -j[=JSONFILE] (-json) Export/import tags in JSON format
- -l (-long) Use long 2-line output format
- -L (-latin) Use Windows Latin1 encoding
- -lang [LANG] Set current language
- -listItem INDEX Extract specific item from a list
- -n (--printConv) Read/write numerical tag values
- -p FMTFILE (-printFormat) Print output in specified format
- -php Export tags as a PHP Array
- -s[NUM] (-short) Short output format
- -S (-veryShort) Very short output format
- -sep STR (-separator) Set separator string for list items
- -sort Sort output alphabetically
- -struct Enable output of structured information
- -t (-tab) Output in tab-delimited list format
- -T (-table) Output in tabular format
- -v[NUM] (-verbose) Print verbose messages
- -w[+|!] EXT (-textOut) Write (or overwrite!) output text files
- -W[+|!] FMT (-tagOut) Write output text file for each tag
- -Wext EXT (-tagOutExt) Write only specified file types with -W
- -X (-xmlFormat) Use RDF/XML output format</pre>
- <p><a href="#processing_control">Processing control</a></p>
- <pre>
- -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
- -progress Show file progress count
- -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
- -wm MODE (-writeMode) Set mode for writing/creating tags
- -z (-zip) Read/write compressed information</pre>
- <p><a href="#other_options">Other options</a></p>
- <pre>
- -@ ARGFILE Read command-line arguments from file
- -k (-pause) Pause before terminating
- -list[w|f|wf|g[NUM]|d|x] List various exiftool capabilities
- -ver Print exiftool version number</pre>
- <p><a href="#special_features">Special features</a></p>
- <pre>
- -geotag TRKFILE Geotag images from specified GPS log
- -globalTimeShift SHIFT Shift all formatted date/time values
- -use MODULE Add features from plug-in module</pre>
- <p><a href="#utilities">Utilities</a></p>
- <pre>
- -delete_original[!] Delete "_original" backups
- -restore_original Restore from "_original" backups</pre>
- <p><a href="#advanced_options">Advanced options</a></p>
- <pre>
- -api OPT[=VAL] Set ExifTool API option
- -common_args Define common arguments
- -config CFGFILE Specify configuration file name
- -echo[NUM] TEXT Echo text to stdout or stderr
- -execute[NUM] Execute multiple commands on one line
- -srcfile FMT Set different source file name
- -stay_open FLAG Keep reading -@ argfile even after EOF
- -userParam PARAM[=VAL] Set user parameter (API UserParam opt)</pre>
- <p>
- </p>
- <h2><a name="option_details">Option Details</a></h2>
- <p>
- </p>
- <h3><a name="tag_operations">Tag operations</a></h3>
- <dl>
- <dt><strong><a name="tag" class="item"><strong>-</strong><em>TAG</em></a></strong></dt>
- <dd>
- <p>Extract information for the specified tag (eg. <code>-CreateDate</code>). Multiple
- tags may be specified in a single command. A tag name is the handle by
- which a piece of information is referenced. See
- <a href="TagNames/index.html">Image::ExifTool::TagNames</a> for documentation on
- available tag names. A tag name may include leading group names separated
- by colons (eg. <code>-EXIF:CreateDate</code>, or <code>-Doc1:XMP:Creator</code>), and each group
- name may be prefixed by a digit to specify family number (eg.
- <code>-1IPTC:City</code>). Use the <strong>-listg</strong> option to list available group names by
- family.</p>
- <p>A special tag name of <code>All</code> may be used to indicate all meta information.
- This is particularly useful when a group name is specified to extract all
- information in a group (but beware that unless the <strong>-a</strong> option is also
- used, some tags in the group may be suppressed by same-named tags in other
- groups). The wildcard characters <code>?</code> and <code>*</code> may be used in a tag name to
- match any single character and zero or more characters respectively. These
- may not be used in a group name, with the exception that a group name of
- <code>*</code> (or <code>All</code>) may be used to extract all instances of a tag (as if <strong>-a</strong>
- was used). Note that arguments containing wildcards must be quoted on the
- command line of most systems to prevent shell globbing.</p>
- <p>A <code>#</code> may be appended to the tag name to disable the print conversion on a
- per-tag basis (see the <strong>-n</strong> option). This may also be used when writing or
- copying tags.</p>
- <p>If no tags are specified, all available information is extracted (as if
- <code>-All</code> had been specified).</p>
- <p>Note: Descriptions, not tag names, are shown by default when extracting
- information. Use the <strong>-s</strong> option to see the tag names instead.</p>
- </dd>
- <dt><strong><a name="tag2" class="item"><strong>--</strong><em>TAG</em></a></strong></dt>
- <dd>
- <p>Exclude specified tag from extracted information. Same as the <strong>-x</strong> option.
- Group names and wildcards are permitted as described above for <strong>-TAG</strong>.
- Once excluded from the output, a tag may not be re-included by a subsequent
- option. May also be used following a <strong>-tagsFromFile</strong> option to exclude
- tags from being copied (when redirecting to another tag, it is the source
- tag that should be excluded), or to exclude groups from being deleted when
- deleting all information (eg. <code>-all= --exif:all</code> deletes all but EXIF
- information). But note that this will not exclude individual tags from a
- group delete (unless a family 2 group is specified, see note 4 below).
- Instead, individual tags may be recovered using the <strong>-tagsFromFile</strong> option
- (eg. <code>-all= -tagsfromfile @ -artist</code>).</p>
- </dd>
- <dt><strong><a name="tag_value" class="item"><strong>-</strong><em>TAG</em>[+-]<strong>=</strong>[<em>VALUE</em>]</a></strong></dt>
- <dd>
- <p>Write a new value for the specified tag (eg. <code>-comment=wow</code>), or delete the
- tag if no <em>VALUE</em> is given (eg. <code>-comment=</code>). <code>+=</code> and <code>-=</code> are used to
- add or remove existing entries from a list, or to shift date/time values
- (see <a href="Shift.html">Image::ExifTool::Shift.pl</a> for details).
- <code>+=</code> may also be used to increment numerical values, and <code>-=</code> may be used
- to conditionally delete or replace a tag (see <a href="#writing_examples">WRITING EXAMPLES</a> for
- examples).</p>
- <p><em>TAG</em> may contain one or more leading family 0, 1 or 2 group names,
- prefixed by optional family numbers, and separated colons. If no group name
- is specified, the tag is created in the preferred group, and updated in any
- other location where a same-named tag already exists. The preferred group
- is the first group in the following list where <em>TAG</em> is valid: 1) EXIF, 2)
- IPTC, 3) XMP.</p>
- <p>The wildcards <code>*</code> and <code>?</code> may be used in tag names to assign the same
- value to multiple tags. When specified with wildcards, "unsafe" tags are
- not written. A tag name of <code>All</code> is eqivalent to <code>*</code> (except that it
- doesn't require quoting, while arguments with wildcards do on systems with
- shell globbing), and is often used when deleting all metadata (ie. <code>-All=</code>)
- or an entire group (eg. <code>-GROUP:All=</code>, see note 4 below). Note that not
- all groups are deletable, and that the JPEG APP14 "Adobe" group is not
- removed by default with <code>-All=</code> because it may affect the appearance of the
- image. However, this will remove color space information, so the colors may
- be affected (but this may be avoided by copying back the tags defined by the
- ColorSpaceTags shortcut). Use the <strong>-listd</strong> option for a complete list of
- deletable groups, and see note 5 below regarding the "APP" groups. Also,
- within an image some groups may be contained within others, and these groups
- are removed if the containing group is deleted:</p>
- <pre>
- JPEG Image:
- - Deleting EXIF or IFD0 also deletes ExifIFD, GlobParamIFD,
- GPS, IFD1, InteropIFD, MakerNotes, PrintIM and SubIFD.
- - Deleting ExifIFD also deletes InteropIFD and MakerNotes.
- - Deleting Photoshop also deletes IPTC.</pre>
- <pre>
- TIFF Image:
- - Deleting EXIF only removes ExifIFD which also deletes
- InteropIFD and MakerNotes.</pre>
- <p>Notes:</p>
- <p>1) <strong>Many tag values may be assigned in a single command</strong>. If two
- assignments affect the same tag, the latter takes precedence (except for
- list-type tags, for which both values are written).</p>
- <p>2) In general, MakerNotes tags are considered "Permanent", and may be edited
- but not created or deleted individually. This avoids many potential
- problems, including the inevitable compatibility problems with OEM software
- which may be very inflexible about the information it expects to find in the
- maker notes.</p>
- <p>3) Changes to PDF files are reversible because the original information is
- never actually deleted from the file. So ExifTool alone may not be used to
- securely edit metadata in PDF files.</p>
- <p>4) Specifying <code>-GROUP:all=</code> deletes the entire group as a block only if a
- single family 0 or 1 group is specified. Otherwise all deletable tags in
- the specified group(s) are removed individually, and in this case is it
- possible to exclude individual tags from a mass delete. For example,
- <code>-time:all --Exif:Time:All</code> removes all deletable Time tags except those in
- the EXIF. This difference also applies if family 2 is specified when
- deleting all groups. For example, <code>-2all:all=</code> deletes tags individually,
- while <code>-all:all=</code> deletes entire blocks.</p>
- <p>5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
- application segments which are not associated with another deletable group.
- For example, specifying <code>-APP14:All=</code> will NOT delete the APP14 "Adobe"
- segment because this is accomplished with <code>-Adobe:All</code>.</p>
- <p>Special feature: Integer values may be specified in hexadecimal with a
- leading <code>0x</code>, and simple rational values may be specified as fractions.</p>
- </dd>
- <dt><strong><a name="tag_datfile_or_tag_fmt" class="item"><strong>-</strong><em>TAG</em><=<em>DATFILE</em> or <strong>-</strong><em>TAG</em><=<em>FMT</em></a></strong></dt>
- <dd>
- <p>Set the value of a tag from the contents of file <em>DATFILE</em>. The file name
- may also be given by a <em>FMT</em> string where %d, %f and %e represent the
- directory, file name and extension of the original <em>FILE</em> (see the <strong>-w</strong>
- option for more details). Note that quotes are required around this
- argument to prevent shell redirection since it contains a <code><</code> symbol.
- If <em>DATFILE</em>/<em>FMT</em> is not provided, the effect is the same as <a href="#tag"><code>-TAG=</code></a>,
- and the tag is simply deleted. <code>+<=</code> or <code>-<=</code> may also be used to
- add or delete specific list entries, or to shift date/time values.</p>
- </dd>
- <dt><strong><a name="tagsfromfile_srcfile_or_fmt" class="item"><strong>-tagsFromFile</strong> <em>SRCFILE</em> or <em>FMT</em></a></strong></dt>
- <dd>
- <p>Copy tag values from <em>SRCFILE</em> to <em>FILE</em>. Tag names on the command line
- after this option specify the tags to be copied, or excluded from the copy.
- Wildcards are permitted in these tag names. If no tags are specified, then
- all possible tags (see note 1 below) from the source file are copied to
- same-named tags in the preferred location of the output file (the same as
- specifying <code>-all</code>). More than one <strong>-tagsFromFile</strong> option may be used to
- copy tags from multiple files.</p>
- <p>By default, this option will update any existing and writable same-named
- tags in the output <em>FILE</em>, but will create new tags only in their preferred
- groups. This allows some information to be automatically transferred to the
- appropriate group when copying between images of different formats. However,
- if a group name is specified for a tag then the information is written only
- to this group (unless redirected to another group, see below). If <code>All</code> is
- used as a group name, then the specified tag(s) are written to the same
- family 1 group they had in the source file (ie. the same specific location,
- like ExifIFD or XMP-dc). For example, the common operation of copying all
- writable tags to the same specific locations in the output <em>FILE</em> is
- achieved by adding <code>-all:all</code>. A different family may be specified by
- adding a leading family number to the group name (eg. <code>-0all:all</code> preserves
- the same general location, like EXIF or XMP).</p>
- <p><em>SRCFILE</em> may be the same as <em>FILE</em> to move information around within a
- single file. In this case, <code>@</code> may be used to represent the source file
- (ie. <code>-tagsFromFile @</code>), permitting this feature to be used for batch
- processing multiple files. Specified tags are then copied from each file in
- turn as it is rewritten. For advanced batch use, the source file name may
- also be specified using a <em>FMT</em> string in which %d, %f and %e represent the
- directory, file name and extension of <em>FILE</em>. See <strong>-w</strong> option for <em>FMT</em>
- string examples.</p>
- <p>A powerful redirection feature allows a destination tag to be specified for
- each copied tag. With this feature, information may be written to a tag
- with a different name or group. This is done using
- "'-<em>DSTTAG</em><<em>SRCTAG</em>'" or
- "'-<em>SRCTAG</em>><em>DSTTAG</em>'" on the command line after
- <strong>-tagsFromFile</strong>, and causes the value of <em>SRCTAG</em> to be copied from
- <em>SRCFILE</em> and written to <em>DSTTAG</em> in <em>FILE</em>. Note that this argument
- must be quoted to prevent shell redirection, and there is no <code>=</code> sign as
- when assigning new values. Source and/or destination tags may be prefixed
- by a group name and/or suffixed by <code>#</code>. Wildcards are allowed in both the
- source and destination tag names. A destination group and/or tag name of
- <code>All</code> or <code>*</code> writes to the same family 1 group and/or tag name as the
- source. If no destination group is specified, the information is written to
- the preferred group. Whitespace around the <code>></code> or <code><</code> is ignored.
- As a convenience, <code>-tagsFromFile @</code> is assumed for any redirected tags
- which are specified without a prior <strong>-tagsFromFile</strong> option. Copied tags
- may also be added or deleted from a list with arguments of the form
- "'-<em>SRCTAG</em>+<<em>DSTTAG</em>'" or
- "'-<em>SRCTAG</em>-<<em>DSTTAG</em>'".</p>
- <p>An extension of the redirection feature allows strings involving tag names
- to be used on the right hand side of the <code><</code> symbol with the syntax
- "'-<em>DSTTAG</em><<em>STR</em>'", where tag names in <em>STR</em> are
- prefixed with a <code>$</code> symbol. See the <strong>-p</strong> option for more details about
- this syntax. Strings starting with a <code>=</code> sign must insert a single space
- after the <code><</code> to avoid confusion with the <code><=</code> operator which sets
- the tag value from the contents of a file. A single space at the start of
- the string is removed if it exists, but all other whitespace in the string
- is preserved. See note 8 below about using shortcuts or wildcards with the
- redirection feature.</p>
- <p>See <a href="#copying_examples">COPYING EXAMPLES</a> for examples using <strong>-tagsFromFile</strong>.</p>
- <p>Notes:</p>
- <p>1) Some tags (generally tags which may affect the appearance of the image)
- are considered "unsafe" to write, and are only copied if specified
- explicitly (ie. no wildcards). See the
- <a href="TagNames/index.html">tag name documentation</a> for more details about
- "unsafe" tags.</p>
- <p>2) Be aware of the difference between excluding a tag from being copied
- (--<em>TAG</em>), and deleting a tag (-<em>TAG</em>=). Excluding a tag prevents it from
- being copied to the destination image, but deleting will remove a
- pre-existing tag from the image.</p>
- <p>3) The maker note information is copied as a block, so it isn't affected
- like other information by subsequent tag assignments on the command line.
- Also, since the PreviewImage referenced from the maker notes may be rather
- large, it is not copied, and must be transferred separately if desired.</p>
- <p>4) The order of operations is to copy all specified tags at the point of the
- <strong>-tagsFromFile</strong> option in the command line. Any tag assignment to the
- right of the <strong>-tagsFromFile</strong> option is made after all tags are copied. For
- example, new tag values are set in the order One, Two, Three then Four with
- this command:</p>
- <pre>
- exiftool -One=1 -tagsFromFile s.jpg -Two -Four=4 -Three d.jpg</pre>
- <p>This is significant in the case where an overlap exists between the copied
- and assigned tags because later operations may override earlier ones.</p>
- <p>5) The normal behaviour of copied tags differs subtly from that of assigned
- tags for list-type tags. When copying to a list, each copied tag overrides
- any previous operations on the list. While this avoids duplicate list items
- when copying groups of tags from a file containing redundant information, it
- also prevents values of different tags from being copied into the same list
- when this is the intent. So a <strong>-addTagsFromFile</strong> option is provided which
- allows copying of multiple tags into the same list. eg)</p>
- <pre>
- exiftool -addtagsfromfile @ '-subject<make' '-subject<model' ...</pre>
- <p>Other than this difference, the <strong>-tagsFromFile</strong> and <strong>-addTagsFromFile</strong>
- options are equivalent.</p>
- <p>6) The <strong>-a</strong> option (allow duplicate tags) is always in effect when copying
- tags from <em>SRCFILE</em>.</p>
- <p>7) Structured tags are copied by default when copying tags. See the
- <strong>-struct</strong> option for details.</p>
- <p>8) With the redirection feature, copying a tag directly (ie.
- "'-<em>DSTTAG</em><<em>SRCTAG</em>'") is not the same as interpolating
- its value inside a string (ie. "'-<em>DSTTAG</em><$<em>SRCTAG</em>'")
- for <a href="http://search.cpan.org/dist/Image-ExifTool/lib/Image/ExifTool/Shortcuts.pm">shortcut tags</a> or tag names containing
- wildcards. When copying directly, the values of each matching source tag
- are copied individually to the destination tag (as if multiple redirection
- arguments were used). However, when interpolated inside a string, the
- values of shortcut tags are concatenated, and wildcards are not allowed.</p>
- </dd>
- <dt><strong><strong>-x</strong> <em>TAG</em> (<strong>-exclude</strong>)</strong></dt>
- <dd>
- <p>Exclude the specified tag. There may be multiple <strong>-x</strong> options. This has
- the same effect as --<em>TAG</em> on the command line. See the --<em>TAG</em>
- documentation above for a complete description.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="input_output_text_formatting">Input-output text formatting</a></h3>
- <p>Note that trailing spaces are removed from extracted values for most output
- text formats. The exceptions are <a href="#b"><code>-b</code></a>, <code>-csv</code>, <code>-j</code> and <a href="#x"><code>-X</code></a>.</p>
- <dl>
- <dt><strong><a name="args" class="item"><strong>-args</strong> (<strong>-argFormat</strong>)</a></strong></dt>
- <dd>
- <p>Output information in the form of exiftool arguments, suitable for use with
- the <strong>-@</strong> option when writing. May be combined with the <strong>-G</strong> option to
- include group names. This feature may be used to effectively copy tags
- between images, but allows the metadata to be altered by editing the
- intermediate file (<code>out.args</code> in this example):</p>
- <pre>
- exiftool -args -G1 --filename --directory src.jpg > out.args
- exiftool -@ out.args dst.jpg</pre>
- <p>Note: Be careful when copying information with this technique since it is
- easy to write tags which are normally considered "unsafe". For instance,
- the FileName and Directory tags are excluded in the example above to avoid
- renaming and moving the destination file. Also note that the second command
- above will produce warning messages for any tags which are not writable.</p>
- <p>As well, the <strong>-sep</strong> option should be used when reading back to maintain
- separate list items, and the <strong>-struct</strong> option may be used when extracting
- to preserve structured XMP information.</p>
- </dd>
- <dt><strong><a name="b" class="item"><strong>-b</strong> (<strong>-binary</strong>)</a></strong></dt>
- <dd>
- <p>Output requested metadata 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. List items are separated by a newline when extracted
- with the <strong>-b</strong> option. May be combined with <code>-j</code>, <a href="#php"><code>-php</code></a> or <a href="#x"><code>-X</code></a> to
- extract binary data in JSON, PHP or XML format.</p>
- </dd>
- <dt><strong><a name="fmt" class="item"><strong>-c</strong> <em>FMT</em> (<strong>-coordFormat</strong>)</a></strong></dt>
- <dd>
- <p>Set the print format for GPS coordinates. <em>FMT</em> uses the same syntax as
- the <code>printf</code> format string. The specifiers correspond to degrees, minutes
- and seconds in that order, but minutes and seconds are optional. For
- example, the following table gives the output for the same coordinate using
- various formats:</p>
- <pre>
- FMT Output
- ------------------- ------------------
- "%d deg %d' %.2f"\" 54 deg 59' 22.80" (default for reading)
- "%d %d %.8f" 54 59 22.80000000 (default for copying)
- "%d deg %.4f min" 54 deg 59.3800 min
- "%.6f degrees" 54.989667 degrees</pre>
- <p>Notes:</p>
- <p>1) To avoid loss of precision, the default coordinate format is different
- when copying tags using the <strong>-tagsFromFile</strong> option.</p>
- <p>2) If the hemisphere is known, a reference direction (N, S, E or W) is
- appended to each printed coordinate, but adding a <code>+</code> to the format
- specifier (eg. <code>%+.6f</code>) prints a signed coordinate instead.</p>
- <p>3) This print formatting may be disabled with the <strong>-n</strong> option to extract
- coordinates as signed decimal degrees.</p>
- </dd>
- <dt><strong><a name="charset_type_charset" class="item"><strong>-charset</strong> [[<em>TYPE</em>=]<em>CHARSET</em>]</a></strong></dt>
- <dd>
- <p>If <em>TYPE</em> is <code>ExifTool</code> or not specified, this option sets the ExifTool
- character encoding for output tag values when reading and input values when
- writing. The default ExifTool encoding is <code>UTF8</code>. If no <em>CHARSET</em> is
- given, a list of available character sets is returned. Valid <em>CHARSET</em>
- values are:</p>
- <pre>
- CHARSET Alias(es) Description
- ---------- --------------- ----------------------------------
- UTF8 cp65001, UTF-8 UTF-8 characters (default)
- Latin cp1252, Latin1 Windows Latin1 (West European)
- Latin2 cp1250 Windows Latin2 (Central European)
- Cyrillic cp1251, Russian Windows Cyrillic
- Greek cp1253 Windows Greek
- Turkish cp1254 Windows Turkish
- Hebrew cp1255 Windows Hebrew
- Arabic cp1256 Windows Arabic
- Baltic cp1257 Windows Baltic
- Vietnam cp1258 Windows Vietnamese
- Thai cp874 Windows Thai
- MacRoman cp10000, Roman Macintosh Roman
- MacLatin2 cp10029 Macintosh Latin2 (Central Europe)
- MacCyrillic cp10007 Macintosh Cyrillic
- MacGreek cp10006 Macintosh Greek
- MacTurkish cp10081 Macintosh Turkish
- MacRomanian cp10010 Macintosh Romanian
- MacIceland cp10079 Macintosh Icelandic
- MacCroatian cp10082 Macintosh Croatian</pre>
- <p><em>TYPE</em> may be <code>FileName</code> to specify the encoding of file names on the
- command line (ie. <em>FILE</em> arguments). In Windows, this triggers use of
- wide-character i/o routines, thus providing support for Unicode file names.
- See the <a href="#windows_unicode_file_names">WINDOWS UNICODE FILE NAMES</a> section below for details.</p>
- <p>Other values of <em>TYPE</em> listed below are used to specify the internal
- encoding of various meta information formats.</p>
- <pre>
- TYPE Description Default
- --------- ------------------------------------------- -------
- EXIF Internal encoding of EXIF "ASCII" strings (none)
- ID3 Internal encoding of ID3v1 information Latin
- IPTC Internal IPTC encoding to assume when Latin
- IPTC:CodedCharacterSet is not defined
- Photoshop Internal encoding of Photoshop IRB strings Latin
- QuickTime Internal encoding of QuickTime strings MacRoman</pre>
- <p>See <a href="http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q10">http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q10</a> for more
- information about coded character sets.</p>
- </dd>
- <dt><strong><a name="csv_csvfile" class="item"><strong>-csv</strong>[=<em>CSVFILE</em>]</a></strong></dt>
- <dd>
- <p>Export information in CSV format, or import information if <em>CSVFILE</em> is
- specified. When importing, the CSV file must be in exactly the same format
- as the exported file. The first row of the <em>CSVFILE</em> must be the ExifTool
- tag names (with optional group names) for each column of the file, and
- values must be separated by commas. A special "SourceFile" column specifies
- the files associated with each row of information (and a SourceFile of "*"
- may be used to define default tags to be imported for all files). The
- following examples demonstrate basic use of this option:</p>
- <pre>
- # generate CSV file with common tags from all images in a directory
- exiftool -common -csv dir > out.csv</pre>
- <pre>
- # update metadata for all images in a directory from CSV file
- exiftool -csv=a.csv dir</pre>
- <p>Empty values are ignored when importing. Also, FileName and Directory
- columns are ignored if they exist (ie. ExifTool will not attempt to write
- these tags with a CSV import). To force a tag to be deleted, use the <strong>-f</strong>
- option and set the value to "-" in the CSV file (or to the MissingTagValue
- if this API option was used). Multiple databases may be imported in a
- single command.</p>
- <p>When exporting a CSV file, the <strong>-g</strong> or <strong>-G</strong> option to add group names to
- the tag headings. If the <strong>-a</strong> option is used to allow duplicate tag names,
- the duplicate tags are only included in the CSV output if the column
- headings are unique. Adding the <strong>-G4</strong> option ensures a unique column
- heading for each tag. When exporting specific tags, the CSV columns are
- arranged in the same order as the specified tags provided the column
- headings exactly match the specified tag names, otherwise the columns are
- sorted in alphabetical order.</p>
- <p>When importing from a CSV file, only files specified on the command line are
- processed. Any extra entries in the CSV file are ignored.</p>
- <p>List-type tags are stored as simple strings in a CSV file, but the <strong>-sep</strong>
- option may be used to split them back into separate items when importing.</p>
- <p>Special feature: <strong>-csv</strong>+=<em>CSVFILE</em> may be used to add items to existing
- lists. This affects only list-type tags. Also applies to the <strong>-j</strong> option.</p>
- <p>Note that this option is fundamentally different than all other output
- format options because it requires information from all input files to be
- buffered in memory before the output is written. This may result in
- excessive memory usage when processing a very large number of files with a
- single command. Also, it makes this option incompatible with the <strong>-w</strong>
- option.</p>
- </dd>
- <dt><strong><strong>-d</strong> <em>FMT</em> (<strong>-dateFormat</strong>)</strong></dt>
- <dd>
- <p>Set the format for date/time tag values. The specifics of the <em>FMT</em> syntax
- are system dependent -- consult the <code>strftime</code> man page on your system for
- details. The default format is equivalent to "%Y:%m:%d %H:%M:%S". This
- option has no effect on date-only or time-only tags and ignores timezone
- information if present. Only one <strong>-d</strong> option may be used per command. The
- inverse operation (ie. un-formatting a date/time value) is currently not
- applied when writing a date/time tag.</p>
- </dd>
- <dt><strong><a name="d" class="item"><strong>-D</strong> (<strong>-decimal</strong>)</a></strong></dt>
- <dd>
- <p>Show tag ID number in decimal when extracting information.</p>
- </dd>
- <dt><strong><a name="ex" class="item"><strong>-E</strong>, <strong>-ex</strong> (<strong>-escapeHTML</strong>, <strong>-escapeXML</strong>)</a></strong></dt>
- <dd>
- <p>Escape characters in output values for HTML (<strong>-E</strong>) or XML (<strong>-ex</strong>). For
- HTML, all characters with Unicode code points above U+007F are escaped as
- well as the following 5 characters: & (&amp;) ' (&#39;) " (&quot;)
- > (&gt;) and < (&lt;). For XML, only these 5 characters are
- escaped. The <strong>-E</strong> option is implied with <strong>-h</strong>, and <strong>-ex</strong> is implied with
- <strong>-X</strong>. The inverse conversion is applied when writing tags.</p>
- </dd>
- <dt><strong><a name="f" class="item"><strong>-f</strong> (<strong>-forcePrint</strong>)</a></strong></dt>
- <dd>
- <p>Force printing of tags even if their values are not found. This option only
- applies when specific tags are requested on the command line (ie. not with
- wildcards or by <code>-all</code>). With this option, a dash (<code>-</code>) is printed for
- the value of any missing tag, but the dash may be changed via the API
- MissingTagValue option. May also be used to add a 'flags' attribute to the
- <strong>-listx</strong> output, or to allow tags to be deleted when writing with the
- <strong>-csv</strong>=<em>CSVFILE</em> feature.</p>
- </dd>
- <dt><strong><a name="g_num_num_groupheadings" class="item"><strong>-g</strong>[<em>NUM</em>][:<em>NUM</em>...] (<strong>-groupHeadings</strong>)</a></strong></dt>
- <dd>
- <p>Organize output by tag group. <em>NUM</em> specifies a group family number, and
- may be 0 (general location), 1 (specific location), 2 (category), 3
- (document number) or 4 (instance number). Multiple families may be
- specified by separating them with colons. By default the resulting group
- name is simplified by removing any leading <code>Main:</code> and collapsing adjacent
- identical group names, but this can be avoided by placing a colon before the
- first family number (eg. <strong>-g:3:1</strong>). If <em>NUM</em> is not specified, <strong>-g0</strong> is
- assumed. Use the <strong>-listg</strong> option to list group names for a specified
- family.</p>
- </dd>
- <dt><strong><a name="g_num_num_groupnames" class="item"><strong>-G</strong>[<em>NUM</em>][:<em>NUM</em>...] (<strong>-groupNames</strong>)</a></strong></dt>
- <dd>
- <p>Same as <strong>-g</strong> but print group name for each tag.</p>
- </dd>
- <dt><strong><a name="h" class="item"><strong>-h</strong> (<strong>-htmlFormat</strong>)</a></strong></dt>
- <dd>
- <p>Use HTML table formatting for output. Implies the <strong>-E</strong> option. The
- formatting options <strong>-D</strong>, <strong>-H</strong>, <strong>-g</strong>, <strong>-G</strong>, <strong>-l</strong> and <strong>-s</strong> may be used
- in combination with <strong>-h</strong> to influence the HTML format.</p>
- </dd>
- <dt><strong><a name="h" class="item"><strong>-H</strong> (<strong>-hex</strong>)</a></strong></dt>
- <dd>
- <p>Show tag ID number in hexadecimal when extracting information.</p>
- </dd>
- <dt><strong><a name="htmldump_offset" class="item"><strong>-htmlDump</strong>[<em>OFFSET</em>]</a></strong></dt>
- <dd>
- <p>Generate a dynamic web page containing a hex dump of the EXIF information.
- This can be a very powerful tool for low-level analysis of EXIF information.
- The <strong>-htmlDump</strong> option is also invoked if the <strong>-v</strong> and <strong>-h</strong> options are
- used together. The verbose level controls the maximum length of the blocks
- dumped. An <em>OFFSET</em> may be given to specify the base for displayed
- offsets. If not provided, the EXIF/TIFF base offset is used. Use
- <strong>-htmlDump0</strong> for absolute offsets. Currently only EXIF/TIFF and JPEG
- information is dumped, but the -u option can be used to give a raw hex dump
- of other file formats.</p>
- </dd>
- <dt><strong><a name="j_jsonfile_json" class="item"><strong>-j</strong>[=<em>JSONFILE</em>] (<strong>-json</strong>)</a></strong></dt>
- <dd>
- <p>Use JSON (JavaScript Object Notation) formatting for console output, or
- import JSON file if <em>JSONFILE</em> is specified. This option may be combined
- with <strong>-g</strong> to organize the output into objects by group, or <strong>-G</strong> to add
- group names to each tag. List-type tags with multiple items are output as
- JSON arrays unless <strong>-sep</strong> is used. By default XMP structures are flattened
- into individual tags in the JSON output, but the original structure may be
- preserved with the <strong>-struct</strong> option (this also causes all list-type XMP
- tags to be output as JSON arrays, otherwise single-item lists are output as
- simple strings). The <strong>-a</strong> option is implied if the <strong>-g</strong> or <strong>-G</strong> options
- are used, otherwise it is ignored and duplicate tags are suppressed. Adding
- the <strong>-D</strong> or <strong>-H</strong> option changes tag values to JSON objects with "val" and
- "id" fields, and adding <strong>-l</strong> adds a "desc" field, and a "num" field if the
- numerical value is different from the converted "val". The <strong>-b</strong> option may
- be added to output binary data, encoded in base64 if necessary (indicated by
- "base64:" as the first 7 bytes of the value). The JSON output is UTF-8
- regardless of any <strong>-L</strong> or <strong>-charset</strong> option setting, but the UTF-8
- validation is disabled if a character set other than UTF-8 is specified.</p>
- <p>If <em>JSONFILE</em> is specified, the file is imported and the tag definitions
- from the file are used to set tag values on a per-file basis. The special
- "SourceFile" entry in each JSON object associates the information with a
- specific target file. An object with a missing SourceFile or a SourceFile
- of "*" defines default tags for all target files. The imported JSON file
- must have the same format as the exported JSON files with the exception that
- the <strong>-g</strong> option is not compatible with the import file format (use <strong>-G</strong>
- instead). Additionally, tag names in the input JSON file may be suffixed
- with a <code>#</code> to disable print conversion.</p>
- <p>Unlike CSV import, empty values are not ignored, and will cause an empty
- value to be written if supported by the specific metadata type. Tags are
- deleted by using the <strong>-f</strong> option and setting the tag value to "-" (or to
- the MissingTagValue setting if this API option was used). Importing with
- <strong>-j</strong>+=<em>JSONFILE</em> causes new values to be added to existing lists.</p>
- </dd>
- <dt><strong><a name="l" class="item"><strong>-l</strong> (<strong>-long</strong>)</a></strong></dt>
- <dd>
- <p>Use long 2-line Canon-style output format. Adds a description and
- unconverted value (if it is different from the converted value) to the XML,
- JSON or PHP output when <strong>-X</strong>, <strong>-j</strong> or <strong>-php</strong> is used. May also be
- combined with <strong>-listf</strong>, <strong>-listr</strong> or <strong>-listwf</strong> to add descriptions of the
- file types.</p>
- </dd>
- <dt><strong><a name="l" class="item"><strong>-L</strong> (<strong>-latin</strong>)</a></strong></dt>
- <dd>
- <p>Use Windows Latin1 encoding (cp1252) for output tag values instead of the
- default UTF-8. When writing, <strong>-L</strong> specifies that input text values are
- Latin1 instead of UTF-8. Equivalent to <code>-charset latin</code>.</p>
- </dd>
- <dt><strong><a name="lang_lang" class="item"><strong>-lang</strong> [<em>LANG</em>]</a></strong></dt>
- <dd>
- <p>Set current language for tag descriptions and converted values. <em>LANG</em> is
- <code>de</code>, <code>fr</code>, <code>ja</code>, etc. Use <strong>-lang</strong> with no other arguments to get a
- list of available languages. The default language is <code>en</code> if <strong>-lang</strong> is
- not specified. Note that tag/group names are always English, independent of
- the <strong>-lang</strong> setting, and translation of warning/error messages has not yet
- been implemented. May also be combined with <strong>-listx</strong> to output
- descriptions in one language only.</p>
- <p>By default, ExifTool uses UTF-8 encoding for special characters, but the
- the <strong>-L</strong> or <strong>-charset</strong> option may be used to invoke other encodings.</p>
- <p>Currently, the language support is not complete, but users are welcome to
- help improve this by submitting their own translations. To submit a set of
- translations, first use the <strong>-listx</strong> option and redirect the output to a
- file to generate an XML tag database, then add entries for other languages,
- zip this file, and email it to phil at owl.phy.queensu.ca for inclusion in
- ExifTool.</p>
- </dd>
- <dt><strong><a name="listitem_index" class="item"><strong>-listItem</strong> <em>INDEX</em></a></strong></dt>
- <dd>
- <p>For list-type tags, this causes only the item with the specified index to be
- extracted. <em>INDEX</em> is 0 for the first item in the list. Negative indices
- may also be used to reference items from the end of the list. Has no effect
- on single-valued tags. Also applies to tag values when copying, and in
- <strong>-if</strong> conditions.</p>
- </dd>
- <dt><strong><a name="n" class="item"><strong>-n</strong> (<strong>--printConv</strong>)</a></strong></dt>
- <dd>
- <p>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
- <strong>-n</strong> option disables this print conversion for all tags. For example:</p>
- <pre>
- > exiftool -Orientation -S a.jpg
- Orientation: Rotate 90 CW
- > exiftool -Orientation -S -n a.jpg
- Orientation: 6</pre>
- <p>The print conversion may also be disabled on a per-tag basis by suffixing
- the tag name with a <code>#</code> character:</p>
- <pre>
- > exiftool -Orientation# -Orientation -S a.jpg
- Orientation: 6
- Orientation: Rotate 90 CW</pre>
- <p>These techniques may also be used to disable the inverse print conversion
- when writing. For example, the following commands all have the same effect:</p>
- <pre>
- > exiftool -Orientation='Rotate 90 CW' a.jpg
- > exiftool -Orientation=6 -n a.jpg
- > exiftool -Orientation#=6 a.jpg</pre>
- </dd>
- <dt><strong><a name="str" class="item"><strong>-p</strong> <em>FMTFILE</em> or <em>STR</em> (<strong>-printFormat</strong>)</a></strong></dt>
- <dd>
- <p>Print output in the format specified by the given file or string (and ignore
- other format options). Tag names in the format file or string begin with a
- <code>$</code> symbol and may contain a leading group names and/or a trailing <code>#</code>.
- Case is not significant. Braces <code>{}</code> may be used around the tag name to
- separate it from subsequent text. Use <code>$$</code> to represent a <code>$</code> symbol, and
- <code>$/</code> for a newline. Multiple <strong>-p</strong> options may be used, each contributing
- a line of text to the output. Lines beginning with <code>#[HEAD]</code> and
- <code>#[TAIL]</code> are output only for the first and last processed files
- respectively. Lines beginning with <code>#[BODY]</code> and lines not beginning with
- <code>#</code> are output for each processed file. Other lines beginning with <code>#</code>
- are ignored. For example, this format file:</p>
- <pre>
- # this is a comment line
- #[HEAD]-- Generated by ExifTool $exifToolVersion --
- File: $FileName - $DateTimeOriginal
- (f/$Aperture, ${ShutterSpeed}s, ISO $EXIF:ISO)
- #[TAIL]-- end --</pre>
- <p>with this command:</p>
- <pre>
- exiftool -p test.fmt a.jpg b.jpg</pre>
- <p>produces output like this:</p>
- <pre>
- -- Generated by ExifTool 10.10 --
- File: a.jpg - 2003:10:31 15:44:19
- (f/5.6, 1/60s, ISO 100)
- File: b.jpg - 2006:05:23 11:57:38
- (f/8.0, 1/13s, ISO 100)
- -- end --</pre>
- <p>When <strong>-ee</strong> (<strong>-extractEmbedded</strong>) is combined with <strong>-p</strong>, embedded documents
- are effectively processed as separate input files.</p>
- <p>If a specified tag does not exist, a minor warning is issued and the line
- with the missing tag is not printed. However, the <strong>-f</strong> option may be used
- to set the value of missing tags to '-' (but this may be configured via the
- MissingTagValue API option), or the <strong>-m</strong> option may be used to ignore minor
- warnings and leave the missing values empty.</p>
- <p>An advanced formatting feature allows an arbitrary Perl expression to be
- applied to the value of any tag by placing it inside the braces after a
- semicolon following the tag name. The expression has access to the value of
- this tag through the default input variable (<code>$_</code>), and the full API
- through the current ExifTool object (<code>$self</code>). It may contain any valid
- Perl code, including translation (<code>tr///</code>) and substitution (<code>s///</code>)
- operations, but note that braces within the expression must be balanced.
- The example below prints the camera Make with spaces translated to
- underlines, and multiple consecutive underlines replaced by a single
- underline:</p>
- <pre>
- exiftool -p '${make;tr/ /_/;s/__+/_/g}' image.jpg</pre>
- <p>A default expression of <code>tr(/\\?*:|"<>\0)()d</code> is assumed if the
- expression is empty. This removes the characters / \ ? * : | < >
- and null from the printed value. (These characters are illegal in Windows
- file names, so this feature is useful if tag values are used in file names.)</p>
- </dd>
- <dt><strong><a name="php" class="item"><strong>-php</strong></a></strong></dt>
- <dd>
- <p>Format output as a PHP Array. The <strong>-g</strong>, <strong>-G</strong>, <strong>-D</strong>, <strong>-H</strong>, <strong>-l</strong>,
- <strong>-sep</strong> and <strong>-struct</strong> options combine with <strong>-php</strong>, and duplicate tags are
- handled in the same way as with the <strong>-json</strong> option. As well, the <strong>-b</strong>
- option may be added to output binary data. Here is a simple example showing
- how this could be used in a PHP script:</p>
- <pre>
- <?php
- eval('$array=' . `exiftool -php -q image.jpg`);
- print_r($array);
- ?></pre>
- </dd>
- <dt><strong><a name="s_num_short" class="item"><strong>-s</strong>[<em>NUM</em>] (<strong>-short</strong>)</a></strong></dt>
- <dd>
- <p>Short output format. Prints tag names instead of descriptions. Add <em>NUM</em>
- or up to 3 <strong>-s</strong> options for even shorter formats:</p>
- <pre>
- -s1 or -s - print tag names instead of descriptions
- -s2 or -s -s - no extra spaces to column-align values
- -s3 or -s -s -s - print values only (no tag names)</pre>
- <p>Also effective when combined with <strong>-t</strong>, <strong>-h</strong>, <strong>-X</strong> or <strong>-listx</strong> options.</p>
- </dd>
- <dt><strong><a name="s" class="item"><strong>-S</strong> (<strong>-veryShort</strong>)</a></strong></dt>
- <dd>
- <p>Very short format. The same as <strong>-s2</strong> or two <strong>-s</strong> options. Tag names are
- printed instead of descriptions, and no extra spaces are added to
- column-align values.</p>
- </dd>
- <dt><strong><strong>-sep</strong> <em>STR</em> (<strong>-separator</strong>)</strong></dt>
- <dd>
- <p>Specify separator string for items in list-type tags. When reading, the
- default is to join list items with ", ". When writing, this option causes
- values assigned to list-type tags to be split into individual items at each
- substring matching <em>STR</em> (otherwise they are not split by default). Space
- characters in <em>STR</em> match zero or more whitespace characters in the value.</p>
- <p>Note that an empty separator ("") is allowed, and will join items with no
- separator when reading, or split the value into individual characters when
- writing.</p>
- </dd>
- <dt><strong><a name="sort_sort" class="item"><strong>-sort</strong>, <strong>--sort</strong></a></strong></dt>
- <dd>
- <p>Sort output by tag description, or by tag name if the <strong>-s</strong> option is used.
- When sorting by description, the sort order will depend on the <strong>-lang</strong>
- option setting. Without the <strong>-sort</strong> option, tags appear in the order they
- were specified on the command line, or if not specified, the order they were
- extracted from the file. By default, tags are organized by groups when
- combined with the <strong>-g</strong> or <strong>-G</strong> option, but this grouping may be disabled
- with <strong>--sort</strong>.</p>
- </dd>
- <dt><strong><a name="struct_struct" class="item"><strong>-struct</strong>, <strong>--struct</strong></a></strong></dt>
- <dd>
- <p>Output structured XMP information instead of flattening to individual tags.
- This option works well when combined with the XML (<strong>-X</strong>) and JSON (<strong>-j</strong>)
- output formats. For other output formats, the structures are serialized
- into the same format as when writing structured information (see
- <a href="http://owl.phy.queensu.ca/~phil/exiftool/struct.html">http://owl.phy.queensu.ca/~phil/exiftool/struct.html</a> for details). When
- copying, structured tags are copied by default unless <strong>--struct</strong> is used to
- disable this feature (although flattened tags may still be copied by
- specifying them individually unless <strong>-struct</strong> is used). These options have
- no effect when assigning new values since both flattened and structured tags
- may always be used when writing.</p>
- </dd>
- <dt><strong><a name="t" class="item"><strong>-t</strong> (<strong>-tab</strong>)</a></strong></dt>
- <dd>
- <p>Output a tab-delimited list of description/values (useful for database
- import). May be combined with <strong>-s</strong> to print tag names instead of
- descriptions, or <strong>-S</strong> to print tag values only, tab-delimited on a single
- line. The <strong>-t</strong> option may also be used to add tag table information to the
- <strong>-X</strong> option output.</p>
- </dd>
- <dt><strong><a name="t" class="item"><strong>-T</strong> (<strong>-table</strong>)</a></strong></dt>
- <dd>
- <p>Output tag values in table form. Equivalent to <strong>-t -S -q -f</strong>.</p>
- </dd>
- <dt><strong><a name="v_num_verbose" class="item"><strong>-v</strong>[<em>NUM</em>] (<strong>-verbose</strong>)</a></strong></dt>
- <dd>
- <p>Print verbose messages. <em>NUM</em> specifies the level of verbosity in the
- range 0-5, with higher numbers being more verbose. If <em>NUM</em> is not given,
- then each <strong>-v</strong> option increases the level of verbosity by 1. With any
- level greater than 0, most other options are ignored and normal console
- output is suppressed unless specific tags are extracted. Using <strong>-v0</strong>
- causes the console output buffer to be flushed after each line (which may be
- useful to avoid delays when piping exiftool output), and prints the name of
- each processed file when writing. Also see the <strong>-progress</strong> option.</p>
- </dd>
- <dt><strong><strong>-w</strong>[+|!] <em>EXT</em> or <em>FMT</em> (<strong>-textOut</strong>)</strong></dt>
- <dd>
- <p>Write console output to files with names ending in <em>EXT</em>, one for each
- source file. The output file name is obtained by replacing the source file
- extension (including the '.') with the specified extension (and a '.' is
- added to the start of <em>EXT</em> if it doesn't already contain one).
- Alternatively, a <em>FMT</em> string may be used to give more control over the
- output file name and directory. In the format string, %d, %f and %e
- represent the directory, filename and extension of the source file, and %c
- represents a copy number which is automatically incremented if the file
- already exists. %d includes the trailing '/' if necessary, but %e does not
- include the leading '.'. For example:</p>
- <pre>
- -w %d%f.txt # same effect as "-w txt"
- -w dir/%f_%e.out # write files to "dir" as "FILE_EXT.out"
- -w dir2/%d%f.txt # write to "dir2", keeping dir structure
- -w a%c.txt # write to "a.txt" or "a1.txt" or "a2.txt"...</pre>
- <p>Existing files will not be overwritten unless an exclamation point is added
- to the option name (ie. <strong>-w!</strong> or <strong>-textOut!</strong>), or a plus sign to append to
- the existing file (ie. <strong>-w+</strong> or <strong>-textOut+</strong>). Both may be used (ie.
- <strong>-w+!</strong> or <strong>-textOut+!</strong>) to overwrite output files that didn't exist before
- the command was run, and append the output from multiple source files. For
- example, to write one output file for all source files in each directory:</p>
- <pre>
- exiftool -filename -createdate -T -w+! %d/out.txt -r DIR</pre>
- <p>Notes:</p>
- <p>1) In a Windows BAT file the <code>%</code> character is represented by <code>%%</code>, so an
- argument like <code>%d%f.txt</code> is written as <code>%%d%%f.txt</code>.</p>
- <p>2) If the argument for <strong>-w</strong> does not contain a format code (%d, %f or %e),
- then it is interpreted as a file extension. Therefore it is not possible to
- specify a simple filename as an argument, so creating a single output file
- from multiple source files is typically done by shell redirection, ie)</p>
- <pre>
- exiftool FILE1 FILE2 ... > out.txt</pre>
- <p>But if necessary, an empty format code may be used to force the argument to
- be interpreted as a format string, and the same result may be obtained
- without the use of shell redirection:</p>
- <pre>
- exiftool -w+! %0fout.txt FILE1 FILE2 ...</pre>
- <p>Advanced features:</p>
- <p>A substring of the original file name, directory or extension may be taken
- by specifying a field width immediately following the '%' character. If the
- width is negative, the substring is taken from the end. The substring
- position (characters to ignore at the start or end of the string) may be
- given by a second optional value after a decimal point. For example:</p>
- <pre>
- Input File Name Format Specifier Output File Name
- ---------------- ---------------- ----------------
- Picture-123.jpg %7f.txt Picture.txt
- Picture-123.jpg %-.4f.out Picture.out
- Picture-123.jpg %7f.%-3f Picture.123
- Picture-123a.jpg Meta%-3.1f.txt Meta123.txt</pre>
- <p>For %d, the field width/position specifiers may be applied to the directory
- levels instead of substring position by using a colon instead of a decimal
- point in the format specifier. For example:</p>
- <pre>
- Source Dir Format Result Notes
- ------------ ------ ---------- ------------------
- pics/2012/02 %2:d pics/2012/ take top 2 levels
- pics/2012/02 %-:1d pics/2012/ up one directory level
- pics/2012/02 %:1d 2012/02/ ignore top level
- pics/2012/02 %1:1d 2012/ take 1 level after top
- /Users/phil %:2d phil/ ignore top 2 levels</pre>
- <p>(Note that the root directory counts as one level when an absolute path is
- used as in the last example above.)</p>
- <p>For %c, these modifiers have a different effects. If a field width is
- given, the copy number is padded with zeros to the specified width. A
- leading '-' adds a dash before the copy number, and a '+' adds an underline.
- By default, the copy number is omitted from the first file of a given name,
- but this can be changed by adding a decimal point to the modifier. For
- example:</p>
- <pre>
- -w A%-cZ.txt # AZ.txt, A-1Z.txt, A-2Z.txt ...
- -w B%5c.txt # B.txt, B00001.txt, B00002.txt ...
- -w C%.c.txt # C0.txt, C1.txt, C2.txt ...
- -w D%-.c.txt # D-0.txt, D-1.txt, D-2.txt ...
- -w E%-.4c.txt # E-0000.txt, E-0001.txt, E-0002.txt ...
- -w F%-.4nc.txt # F-0001.txt, F-0002.txt, F-0003.txt ...
- -w G%+c.txt # G.txt, G_1.txt G_2.txt ...
- -w H%-lc.txt # H.txt, H-b.txt, H-c.txt ...
- -w I.%.3uc.txt # I.AAA.txt, I.AAB.txt, I.AAC.txt ...</pre>
- <p>A special feature allows the copy number to be incremented for each
- processed file by using %C (upper case) instead of %c. This allows a
- sequential number to be added to output file names, even if the names are
- different. For %C, a copy number of zero is not omitted as it is with %c.
- The number before the decimal place gives the starting index, the number
- after the decimal place gives the field width. The following examples show
- the output filenames when used with the command
- <code>exiftool rose.jpg star.jpg jet.jpg ...</code>:</p>
- <pre>
- -w %C%f.txt # 0rose.txt, 1star.txt, 2jet.txt
- -w %f-%10C.txt # rose-10.txt, star-11.txt, jet-12.txt
- -w %.3C-%f.txt # 000-rose.txt, 001-star.txt, 002-jet.txt
- -w %57.4C%f.txt # 0057rose.txt, 0058star.txt, 0059jet.txt</pre>
- <p>All format codes may be modified by 'l' or 'u' to specify lower or upper
- case respectively (ie. <code>%le</code> for a lower case file extension). When used
- to modify %c or %C, the numbers are changed to an alphabetical base (see
- example H above). Also, %c may be modified by 'n' to count using natural
- numbers starting from 1, instead of 0 (see example F above).</p>
- <p>This same <em>FMT</em> syntax is used with the <strong>-o</strong> and <strong>-tagsFromFile</strong> options,
- although %c is only valid for output file names.</p>
- </dd>
- <dt><strong><strong>-W</strong>[!|+] <em>FMT</em> (<strong>-tagOut</strong>)</strong></dt>
- <dd>
- <p>This enhanced version of the <strong>-w</strong> option allows a separate output file to
- be created for each extracted tag. The differences between <strong>-W</strong> and <strong>-w</strong>
- are as follows:</p>
- <p>1) With <strong>-W</strong>, a new output file is created for each extracted tag.</p>
- <p>2) <strong>-W</strong> supports three additional format codes: %t, %g and %s represent
- the tag name, group name, and suggested extension for the output file (based
- on the format of the data). The %g code may be followed by a single digit
- to specify the group family number (eg. %g1), otherwise family 0 is assumed.
- The substring width/position/case specifiers may be used with these format
- codes in exactly the same way as with %f and %e.</p>
- <p>3) The argument for <strong>-W</strong> is interpreted as a file name if it contains no
- format codes. (For <strong>-w</strong>, this would be a file extension.) This change
- allows a simple file name to be specified, which, when combined with the
- append feature, provides a method to write metadata from multiple source
- files to a single output file without the need for shell redirection.</p>
- <p>4) Adding the <strong>-v</strong> option to <strong>-W</strong> generates a list of the tags and output
- file names instead of giving a verbose dump of the entire file. (Unless
- appending all output to one file for each source file by using <strong>-W+</strong> with
- an output file <em>FMT</em> that does not contain %t, $g or %s.)</p>
- <p>5) Individual list items are stored in separate files when <strong>-W</strong> is combined
- with <strong>-b</strong>, but note that for separate files to be created %c must be used
- in <em>FMT</em> to give the files unique names.</p>
- </dd>
- <dt><strong><a name="ext" class="item"><strong>-Wext</strong> <em>EXT</em>, <strong>--Wext</strong> <em>EXT</em> (<strong>-tagOutExt</strong>)</a></strong></dt>
- <dd>
- <p>This option is used to specify the type of output file(s) written by the
- <strong>-W</strong> option. An output file is written only if the suggested extension
- matches <em>EXT</em>. Multiple <strong>-Wext</strong> options may be used to write more than
- one type of file. Use <strong>--Wext</strong> to write all but the specified type(s).</p>
- </dd>
- <dt><strong><a name="x" class="item"><strong>-X</strong> (<strong>-xmlFormat</strong>)</a></strong></dt>
- <dd>
- <p>Use ExifTool-specific RDF/XML formatting for console output. Implies the
- <strong>-a</strong> option, so duplicate tags are extracted. The formatting options
- <strong>-b</strong>, <strong>-D</strong>, <strong>-H</strong>, <strong>-l</strong>, <strong>-s</strong>, <strong>-sep</strong>, <strong>-struct</strong> and <strong>-t</strong> may be used
- in combination with <strong>-X</strong> to affect the output, but note that the tag ID
- (<strong>-D</strong>, <strong>-H</strong> and <strong>-t</strong>), binary data (<strong>-b</strong>) and structured output
- (<strong>-struct</strong>) options are not effective for the short output (<strong>-s</strong>). Another
- restriction of <strong>-s</strong> is that only one tag with a given group and name may
- appear in the output. Note that the tag ID options (<strong>-D</strong>, <strong>-H</strong> and <strong>-t</strong>)
- will produce non-standard RDF/XML unless the <strong>-l</strong> option is also used.</p>
- <p>By default, <strong>-X</strong> outputs flattened tags, so <strong>-struct</strong> should be added if
- required to preserve XMP structures. List-type tags with multiple values
- are formatted as an RDF Bag, but they are combined into a single string when
- <strong>-s</strong> or <strong>-sep</strong> is used. Using <strong>-L</strong> changes the XML encoding from "UTF-8"
- to "windows-1252". Other <strong>-charset</strong> settings change the encoding only if
- there is a corresponding standard XML character set. The <strong>-b</strong> option
- causes binary data values to be written, encoded in base64 if necessary.
- The <strong>-t</strong> option adds tag table information to the output (table <code>name</code>,
- decimal tag <code>id</code>, and <code>index</code> for cases where multiple conditional tags
- exist with the same ID).</p>
- <p>Note: This output is NOT the same as XMP because it uses
- dynamically-generated property names corresponding to the ExifTool tag
- names, and not the standard XMP properties. To write XMP instead, use the
- <strong>-o</strong> option with an XMP extension for the output file.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="processing_control">Processing control</a></h3>
- <dl>
- <dt><strong><a name="a" class="item"><strong>-a</strong>, <strong>--a</strong> (<strong>-duplicates</strong>, <strong>--duplicates</strong>)</a></strong></dt>
- <dd>
- <p>Allow (<strong>-a</strong>) or suppress (<strong>--a</strong>) duplicate tag names to be extracted. By
- default, duplicate tags are suppressed unless the <strong>-ee</strong> or <strong>-X</strong> options
- are used or the Duplicates option is enabled in the configuration file.</p>
- </dd>
- <dt><strong><a name="e" class="item"><strong>-e</strong> (<strong>--composite</strong>)</a></strong></dt>
- <dd>
- <p>Extract existing tags only -- don't calculate composite tags.</p>
- </dd>
- <dt><strong><a name="ee" class="item"><strong>-ee</strong> (<strong>-extractEmbedded</strong>)</a></strong></dt>
- <dd>
- <p>Extract information from embedded documents in EPS files, embedded EPS
- information and JPEG and Jpeg2000 images in PDF files, embedded MPF images
- in JPEG and MPO files, streaming metadata in AVCHD videos, and the resource
- fork of Mac OS files. Implies the <strong>-a</strong> option. Use <strong>-g3</strong> or <strong>-G3</strong> to
- identify the originating document for extracted information. Embedded
- documents containing sub-documents are indicated with dashes in the family 3
- group name. (eg. <code>Doc2-3</code> is the 3rd sub-document of the 2nd embedded
- document.) Note that this option may increase processing time substantially,
- especially for PDF files with many embedded images.</p>
- </dd>
- <dt><strong><strong>-ext</strong> <em>EXT</em>, <strong>--ext</strong> <em>EXT</em> (<strong>-extension</strong>)</strong></dt>
- <dd>
- <p>Process only files with (<strong>-ext</strong>) or without (<strong>--ext</strong>) a specified
- extension. There may be multiple <strong>-ext</strong> and <strong>--ext</strong> options. Extensions
- may begin with a leading '.', and case is not significant. For example:</p>
- <pre>
- exiftool -ext .JPG DIR # process only JPG files
- exiftool --ext cr2 --ext dng DIR # supported files but CR2/DNG
- exiftool --ext . DIR # ignore if no extension
- exiftool -ext "*" DIR # process all files
- exiftool -ext "*" --ext xml DIR # process all but XML files</pre>
- <p>The extension may be <code>"*"</code> as in the last two examples above to force
- processing files with any extension (not just supported files).</p>
- <p>Using this option has two main advantages over specifying <code>*.EXT</code> on the
- command line: 1) It applies to files in subdirectories when combined with
- the <strong>-r</strong> option. 2) The <strong>-ext</strong> option is case-insensitive, which is
- useful when processing files on case-sensitive filesystems.</p>
- </dd>
- <dt><strong><a name="f_offset_fixbase" class="item"><strong>-F</strong>[<em>OFFSET</em>] (<strong>-fixBase</strong>)</a></strong></dt>
- <dd>
- <p>Fix the base for maker notes offsets. A common problem with some image
- editors is that offsets in the maker notes are not adjusted properly when
- the file is modified. This may cause the wrong values to be extracted for
- some maker note entries when reading the edited file. This option allows an
- integer <em>OFFSET</em> to be specified for adjusting the maker notes base offset.
- If no <em>OFFSET</em> is given, ExifTool takes its best guess at the correct base.
- Note that exiftool will automatically fix the offsets for images which store
- original offset information (eg. newer Canon models). Offsets are fixed
- permanently if <strong>-F</strong> is used when writing EXIF to an image. eg)</p>
- <pre>
- exiftool -F -exif:resolutionunit=inches image.jpg</pre>
- </dd>
- <dt><strong><a name="fast_num" class="item"><strong>-fast</strong>[<em>NUM</em>]</a></strong></dt>
- <dd>
- <p>Increase speed of extracting information from JPEG images. With this
- option, ExifTool will not scan to the end of a JPEG image to check for an
- AFCP or PreviewImage trailer, or past the first comment in GIF images or the
- audio/video data in WAV/AVI files to search for additional metadata. These
- speed benefits are small when reading images directly from disk, but can be
- substantial if piping images through a network connection. For more
- substantial speed benefits, <strong>-fast2</strong> also causes exiftool to avoid
- extracting any EXIF MakerNote information. <strong>-fast3</strong> avoids processing the
- file entirely, and returns only an initial guess at FileType and the pseudo
- System tags.</p>
- </dd>
- <dt><strong><a name="fileorder_tag" class="item"><strong>-fileOrder</strong> [-]<em>TAG</em></a></strong></dt>
- <dd>
- <p>Set file processing order according to the sorted value of the specified
- <em>TAG</em>. For example, to process files in order of date:</p>
- <pre>
- exiftool -fileOrder DateTimeOriginal DIR</pre>
- <p>Additional <strong>-fileOrder</strong> options may be added for secondary sort keys.
- Numbers are sorted numerically, and all other values are sorted
- alphabetically. The sort order may be reversed by prefixing the tag name
- with a <code>-</code> (eg. <code>-fileOrder -createdate</code>). Print conversion of the sorted
- values is disabled with the <strong>-n</strong> option, or a <code>#</code> appended to the tag
- name. Other formatting options (eg. <strong>-d</strong>) have no effect on the sorted
- values. Note that the <strong>-fileOrder</strong> option has a large performance impact
- since it involves an additional processing pass of each file.</p>
- </dd>
- <dt><strong><a name="dir" class="item"><strong>-i</strong> <em>DIR</em> (<strong>-ignore</strong>)</a></strong></dt>
- <dd>
- <p>Ignore specified directory name. <em>DIR</em> may be either an individual folder
- name, or a full path. If a full path is specified, it must match the
- Directory tag exactly to be ignored. Use multiple <strong>-i</strong> options to ignore
- more than one directory name. A special <em>DIR</em> value of <code>SYMLINKS</code> (case
- sensitive) may be specified to ignore symbolic links when the <strong>-r</strong> option
- is used.</p>
- </dd>
- <dt><strong><a name="if_expr" class="item"><strong>-if</strong> <em>EXPR</em></a></strong></dt>
- <dd>
- <p>Specify a condition to be evaluated before processing each <em>FILE</em>. <em>EXPR</em>
- is a Perl-like logic expression containing tag names prefixed by <code>$</code>
- symbols. It is evaluated with the tags from each <em>FILE</em> in turn, and the
- file is processed only if the expression returns true. Unlike Perl variable
- names, tag names are not case sensitive and may contain a hyphen. As well,
- tag names may have a leading group names separated by colons, and/or a
- trailing <code>#</code> character to disable print conversion. The expression
- <code>$GROUP:all</code> evaluates to 1 if any tag exists in the specified <code>GROUP</code>, or
- 0 otherwise (see note 2 below). When multiple <strong>-if</strong> options are used, all
- conditions must be satisfied to process the file. Returns an exit status of
- 1 if all files fail the condition. Below are a few examples:</p>
- <pre>
- # extract shutterspeed from all Canon images in a directory
- exiftool -shutterspeed -if '$make eq "Canon"' dir</pre>
- <pre>
- # add one hour to all images created on or after Apr. 2, 2006
- exiftool -alldates+=1 -if '$CreateDate ge "2006:04:02"' dir</pre>
- <pre>
- # set EXIF ISO value if possible, unless it is set already
- exiftool '-exif:iso<iso' -if 'not $exif:iso' dir</pre>
- <pre>
- # find images containing a specific keyword (case insensitive)
- exiftool -if '$keywords =~ /harvey/i' -filename dir</pre>
- <p>Notes:</p>
- <p>1) The <strong>-n</strong> and <strong>-b</strong> options also apply to tags used in <em>EXPR</em>.</p>
- <p>2) Some binary data blocks are not extracted unless specified explicitly.
- These tags are not available for use in the <strong>-if</strong> condition unless they are
- also specified on the command line. The alternative is to use the
- <code>$GROUP:all</code> syntax. (eg. Use <code>$exif:all</code> instead of <code>$exif</code> in <em>EXPR</em>
- to test for the existence of EXIF tags.)</p>
- <p>3) Tags in the string are interpolated the same way as with <strong>-p</strong> before the
- expression is evaluated. In this interpolation, <code>$/</code> is converted to a
- newline and <code>$$</code> represents a single <code>$</code> symbol (so Perl variables, if
- used, require a double <code>$</code>).</p>
- <p>4) The condition may only test tags from the file being processed. To
- process one file based on tags from another, two steps are required. For
- example, to process XMP sidecar files in directory <a href="#dir"><code>DIR</code></a> based on tags from
- the associated NEF:</p>
- <pre>
- exiftool -if EXPR -p '$directory/$filename' -ext nef DIR > nef.txt
- exiftool -@ nef.txt -srcfile %d%f.xmp ...</pre>
- <p>5) The <strong>-a</strong> option has no effect on the evaluation of the expression, and
- the values of duplicate tags are accessible only by specifying a group name
- (such as a family 4 instance number, eg. <code>$Copy1:TAG</code>, <code>$Copy2:TAG</code>, etc).</p>
- </dd>
- <dt><strong><a name="m" class="item"><strong>-m</strong> (<strong>-ignoreMinorErrors</strong>)</a></strong></dt>
- <dd>
- <p>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. Minor errors
- and warnings are indicated by "[minor]" at the start of the message.
- Warnings which affect processing when ignored are indicated by "[Minor]"
- (with a capital "M").</p>
- </dd>
- <dt><strong><strong>-o</strong> <em>OUTFILE</em> or <em>FMT</em> (<strong>-out</strong>)</strong></dt>
- <dd>
- <p>Set the output file or directory name when writing information. Without
- this option, when any "real" tags are written the original file is renamed
- to <code>FILE_original</code> and output is written to <em>FILE</em>. When writing only
- FileName and/or Directory "pseudo" tags, <strong>-o</strong> causes the file to be copied
- instead of moved, but directories specified for either of these tags take
- precedence over that specified by the <strong>-o</strong> option.</p>
- <p><em>OUTFILE</em> may be <code>-</code> to write to stdout. The output file name may also be
- specified using a <em>FMT</em> string in which %d, %f and %e represent the
- directory, file name and extension of <em>FILE</em>. Also, %c may be used to add
- a copy number. See the <strong>-w</strong> option for <em>FMT</em> string examples.</p>
- <p>The output file is taken to be a directory name if it already exists as a
- directory or if the name ends with '/'. Output directories are created if
- necessary. Existing files will not be overwritten. Combining the
- <strong>-overwrite_original</strong> option with <strong>-o</strong> causes the original source file to
- be erased after the output file is successfully written.</p>
- <p>A special feature of this option allows the creation of certain types of
- files from scratch, or with the metadata from another type of file. The
- following file types may be created using this technique:</p>
- <pre>
- XMP, ICC/ICM, MIE, VRD, DR4, EXIF, EXV</pre>
- <p>The output file type is determined by the extension of <em>OUTFILE</em> (specified
- as <a href="#ext"><code>-.EXT</code></a> when writing to stdout). The output file is then created from a
- combination of information in <em>FILE</em> (as if the <strong>-tagsFromFile</strong> option was
- used), and tag values assigned on the command line. If no <em>FILE</em> is
- specified, the output file may be created from scratch using only tags
- assigned on the command line.</p>
- </dd>
- <dt><strong><a name="overwrite_original" class="item"><strong>-overwrite_original</strong></a></strong></dt>
- <dd>
- <p>Overwrite the original <em>FILE</em> (instead of preserving it by adding
- <code>_original</code> to the file name) when writing information to an image.
- Caution: This option should only be used if you already have separate backup
- copies of your image files. The overwrite is implemented by renaming a
- temporary file to replace the original. This deletes the original file and
- replaces it with the edited version in a single operation. When combined
- with <strong>-o</strong>, this option causes the original file to be deleted if the output
- file was successfully written (ie. the file is moved instead of copied).</p>
- </dd>
- <dt><strong><a name="overwrite_original_in_place" class="item"><strong>-overwrite_original_in_place</strong></a></strong></dt>
- <dd>
- <p>Similar to <strong>-overwrite_original</strong> except that an extra step is added to
- allow the original file attributes to be preserved. For example, on a Mac
- this causes the original file creation date, type, creator, label color,
- icon, Finder tags and hard links to the file to be preserved (but note that
- the Mac OS resource fork is always preserved unless specifically deleted
- with <code>-rsrc:all=</code>). This is implemented by opening the original file in
- update mode and replacing its data with a copy of a temporary file before
- deleting the temporary. The extra step results in slower performance, so
- the <strong>-overwrite_original</strong> option should be used instead unless necessary.</p>
- </dd>
- <dt><strong><a name="p" class="item"><strong>-P</strong> (<strong>-preserve</strong>)</a></strong></dt>
- <dd>
- <p>Preserve the filesystem modification date/time of the original file
- (<code>FileModifyDate</code>) when writing. Note that some filesystems store a
- creation date (<code>FileCreateDate</code>) which is not affected by this option.
- This creation date is preserved only on Windows systems where Win32API::File
- and Win32::API are available. For other systems, the
- <strong>-overwrite_original_in_place</strong> option may be used if necessary to preserve
- the creation date. This option is superseded by writing FileModifyDate (and
- FileCreateDate) manually.</p>
- </dd>
- <dt><strong><a name="password_passwd" class="item"><strong>-password</strong> <em>PASSWD</em></a></strong></dt>
- <dd>
- <p>Specify password to allow processing of password-protected PDF documents.
- If a password is required but not given, a warning is issued and the
- document is not processed. Ignored if a password is not required.</p>
- </dd>
- <dt><strong><a name="progress" class="item"><strong>-progress</strong></a></strong></dt>
- <dd>
- <p>Show file progress count in messages. The progress count appears in
- brackets after the name of each processed file, and gives the current file
- number and the total number of files to be processed. Implies the <strong>-v0</strong>
- option, which prints the name of each processed file when writing. When
- combined with the <strong>-if</strong> option, the total count includes all files before
- the condition is applied, but files that fail the condition will not have
- their names printed.</p>
- </dd>
- <dt><strong><a name="q" class="item"><strong>-q</strong> (<strong>-quiet</strong>)</a></strong></dt>
- <dd>
- <p>Quiet processing. One <strong>-q</strong> suppresses normal informational messages, and a
- second <strong>-q</strong> suppresses warnings as well. Error messages can not be
- suppressed, although minor errors may be downgraded to warnings with the
- <strong>-m</strong> option, which may then be suppressed with <code>-q -q</code>.</p>
- </dd>
- <dt><strong><a name="r_recurse" class="item"><strong>-r</strong>[.] (<strong>-recurse</strong>)</a></strong></dt>
- <dd>
- <p>Recursively process files in subdirectories. Only meaningful if <em>FILE</em> is
- a directory name. Subdirectories with names beginning with "." are not
- processed unless "." is added to the option name (ie. <strong>-r.</strong> or
- <strong>-recurse.</strong>). By default, exiftool will also follow symbolic links to
- directories if supported by the system, but this may be disabled with <code>-i
- SYMLINKS</code> (see the <strong>-i</strong> option for details).</p>
- </dd>
- <dt><strong><a name="scanforxmp" class="item"><strong>-scanForXMP</strong></a></strong></dt>
- <dd>
- <p>Scan all files (even unsupported formats) for XMP information unless found
- already. When combined with the <strong>-fast</strong> option, only unsupported file
- types are scanned. Warning: It can be time consuming to scan large files.</p>
- </dd>
- <dt><strong><a name="u" class="item"><strong>-u</strong> (<strong>-unknown</strong>)</a></strong></dt>
- <dd>
- <p>Extract values of unknown tags. Add another <strong>-u</strong> 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 these formats.</p>
- </dd>
- <dt><strong><a name="u" class="item"><strong>-U</strong> (<strong>-unknown2</strong>)</a></strong></dt>
- <dd>
- <p>Extract values of unknown tags as well as unknown information from some
- binary data blocks. This is the same as two <strong>-u</strong> options.</p>
- </dd>
- <dt><strong><a name="mode" class="item"><strong>-wm</strong> <em>MODE</em> (<strong>-writeMode</strong>)</a></strong></dt>
- <dd>
- <p>Set mode for writing/creating tags. <em>MODE</em> is a string of one or more
- characters from the list below. Write mode is <code>wcg</code> unless otherwise
- specified.</p>
- <pre>
- w - Write existing tags
- c - Create new tags
- g - create new Groups as necessary</pre>
- <p>For example, use <code>-wm cg</code> to only create new tags (and avoid editing
- existing ones).</p>
- <p>The level of the group is the SubDirectory level in the metadata structure.
- For XMP or IPTC this is the full XMP/IPTC block (the family 0 group), but
- for EXIF this is the individual IFD (the family 1 group).</p>
- </dd>
- <dt><strong><a name="z" class="item"><strong>-z</strong> (<strong>-zip</strong>)</a></strong></dt>
- <dd>
- <p>When reading, causes information to be extracted from .gz and .bz2
- compressed images. (Only one image per archive. Requires gzip and bzip2 to
- be installed on the system.) When writing, causes compressed information to
- be written if supported by the metadata format. (eg. PNG supports
- compressed textual metadata.) This option also disables the recommended
- padding in embedded XMP, saving 2424 bytes when writing XMP in a file.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="other_options">Other options</a></h3>
- <dl>
- <dt><strong><a name="argfile" class="item"><strong>-@</strong> <em>ARGFILE</em></a></strong></dt>
- <dd>
- <p>Read command-line arguments from the specified file. The file contains one
- argument per line (NOT one option per line -- some options require
- additional arguments, and all arguments must be placed on separate lines).
- Blank lines and lines beginning with <code>#</code> and are ignored. Normal shell
- processing of arguments is not performed, which among other things means
- that arguments should not be quoted and spaces are treated as any other
- character. <em>ARGFILE</em> may exist relative to either the current directory or
- the exiftool directory unless an absolute pathname is given.</p>
- <p>For example, the following <em>ARGFILE</em> will set the value of Copyright to
- "Copyright YYYY, Phil Harvey", where "YYYY" is the year of CreateDate:</p>
- <pre>
- -d
- %Y
- -copyright<Copyright $createdate, Phil Harvey</pre>
- </dd>
- <dt><strong><a name="k" class="item"><strong>-k</strong> (<strong>-pause</strong>)</a></strong></dt>
- <dd>
- <p>Pause with the message <code>-- press any key --</code> or <code>-- press RETURN --</code>
- (depending on your system) before terminating. This option is used to
- prevent the command window from closing when run as a Windows drag and drop
- application.</p>
- </dd>
- <dt><strong><a name="list_listw_listf_listr_listwf_listg_num_listd_listx" class="item"><strong>-list</strong>, <strong>-listw</strong>, <strong>-listf</strong>, <strong>-listr</strong>, <strong>-listwf</strong>,
- <strong>-listg</strong>[<em>NUM</em>], <strong>-listd</strong>, <strong>-listx</strong></a></strong></dt>
- <dd>
- <p>Print a list of all valid tag names (<strong>-list</strong>), all writable tag names
- (<strong>-listw</strong>), all supported file extensions (<strong>-listf</strong>), all recognized file
- extensions (<strong>-listr</strong>), all writable file extensions (<strong>-listwf</strong>), all tag
- groups [in a specified family] (<strong>-listg</strong>[<em>NUM</em>]), all deletable tag groups
- (<strong>-listd</strong>), or an XML database of tag details including language
- translations (<strong>-listx</strong>). The <strong>-list</strong>, <strong>-listw</strong> and <strong>-listx</strong> options may
- be followed by an additional argument of the form <code>-GROUP:All</code> to list only
- tags in a specific group, where <code>GROUP</code> is one or more family 0-2 group
- names (excepting EXIF IFD groups) separated by colons. With <strong>-listg</strong>,
- <em>NUM</em> may be given to specify the group family, otherwise family 0 is
- assumed. The <strong>-l</strong> option may be combined with <strong>-listf</strong>, <strong>-listr</strong> or
- <strong>-listwf</strong> to add file descriptions to the list. The <strong>-lang</strong> option may be
- combined with <strong>-listx</strong> to output descriptions in a single language. Here
- are some examples:</p>
- <pre>
- -list # list all tag names
- -list -EXIF:All # list all EXIF tags
- -list -xmp:time:all # list all XMP tags relating to time
- -listw -XMP-dc:All # list all writable XMP-dc tags
- -listf # list all supported file extensions
- -listr # list all recognized file extensions
- -listwf # list all writable file extensions
- -listg1 # list all groups in family 1
- -listd # list all deletable groups
- -listx -EXIF:All # list database of EXIF tags in XML format
- -listx -XMP:All -s # list short XML database of XMP tags</pre>
- <p>When combined with <strong>-listx</strong>, the <strong>-s</strong> option shortens the output by
- omitting the descriptions and values (as in the last example above), and
- <strong>-f</strong> adds a 'flags' attribute if applicable. The flags are formatted as a
- comma-separated list of the following possible values: Avoid, Binary, List,
- Mandatory, Permanent, Protected, Unknown and Unsafe (see the <a href="TagNames/index.html">Tag Name documentation</a>). For XMP List tags, the list type
- (Alt, Bag or Seq) is added to the flags, and flattened structure tags are
- indicated by a Flattened flag.</p>
- <p>Note that none of the <strong>-list</strong> options require an input <em>FILE</em>.</p>
- </dd>
- <dt><strong><a name="ver" class="item"><strong>-ver</strong></a></strong></dt>
- <dd>
- <p>Print exiftool version number.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="special_features">Special features</a></h3>
- <dl>
- <dt><strong><a name="geotag_trkfile" class="item"><strong>-geotag</strong> <em>TRKFILE</em></a></strong></dt>
- <dd>
- <p>Geotag images from the specified GPS track log file. Using the <strong>-geotag</strong>
- option is equivalent to writing a value to the <code>Geotag</code> tag. After the
- <strong>-geotag</strong> option has been specified, the value of the <code>Geotime</code> tag is
- written to define a date/time for the position interpolation. If <code>Geotime</code>
- is not specified, the value is copied from <code>DateTimeOriginal</code>. For
- example, the following two commands are equivalent:</p>
- <pre>
- exiftool -geotag track.log image.jpg
- exiftool -geotag "-Geotime<DateTimeOriginal" image.jpg</pre>
- <p>When the <code>Geotime</code> value is converted to UTC, the local system timezone is
- assumed unless the date/time value contains a timezone. Writing <code>Geotime</code>
- causes the following tags to be written (provided they can be calculated
- from the track log, and they are supported by the destination metadata
- format): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
- GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime,
- GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection,
- GPSImgDirectionRef, GPSPitch and GPSRoll. By default, tags are created in
- EXIF, and updated in XMP only if they already exist. However,
- <code>EXIF:Geotime</code> or <code>XMP:Geotime</code> may be specified to write only EXIF or XMP
- tags respectively. Note that GPSPitch and GPSRoll are non-standard, and
- require user-defined tags in order to be written.</p>
- <p>The <code>Geosync</code> tag may be used to specify a time correction which is applied
- to each <code>Geotime</code> value for synchronization with GPS time. For example,
- the following command compensates for image times which are 1 minute and 20
- seconds behind GPS:</p>
- <pre>
- exiftool -geosync=+1:20 -geotag a.log DIR</pre>
- <p><code>Geosync</code> must be set before <code>Geotime</code> (if specified) to be effective.
- Advanced <code>Geosync</code> features allow a linear time drift correction and
- synchronization from previously geotagged images. See "geotag.html" in the
- full ExifTool distribution for more information.</p>
- <p>Multiple <strong>-geotag</strong> options may be used to concatinate GPS track log data.
- Also, a single <strong>-geotag</strong> option may be used to load multiple track log
- files by using wildcards in the <em>TRKFILE</em> name, but note that in this case
- <em>TRKFILE</em> must be quoted on most systems (with the notable exception of
- Windows) to prevent filename expansion. For example:</p>
- <pre>
- exiftool -geotag "TRACKDIR/*.log" IMAGEDIR</pre>
- <p>Currently supported track file formats are GPX, NMEA RMC/GGA/GLL, KML, IGC,
- Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Winplus Beacon
- text, and Bramor gEO log files. See <a href="#geotagging_examples">GEOTAGGING EXAMPLES</a> for examples.
- Also see "geotag.html" in the full ExifTool distribution and the
- <a href="ExifTool.html#options">Image::ExifTool Options</a> for more details and for
- information about geotag configuration options.</p>
- </dd>
- <dt><strong><a name="globaltimeshift_shift" class="item"><strong>-globalTimeShift</strong> <em>SHIFT</em></a></strong></dt>
- <dd>
- <p>Shift all formatted date/time values by the specified amount when reading.
- Does not apply to unformatted (<strong>-n</strong>) output. <em>SHIFT</em> takes the same form
- as the date/time shift when writing (see
- <a href="Shift.html">Image::ExifTool::Shift.pl</a> for details), with a
- negative shift being indicated with a minus sign (<code>-</code>) at the start of the
- <em>SHIFT</em> string. For example:</p>
- <pre>
- # return all date/times, shifted back by 1 hour
- exiftool -globalTimeShift -1 -time:all a.jpg</pre>
- <pre>
- # set the file name from the shifted CreateDate (-1 day) for
- # all images in a directory
- exiftool "-filename<createdate" -globaltimeshift "-0:0:1 0:0:0" \
- -d %Y%m%d-%H%M%S.%%e dir</pre>
- </dd>
- <dt><strong><a name="use_module" class="item"><strong>-use</strong> <em>MODULE</em></a></strong></dt>
- <dd>
- <p>Add features from specified plug-in <em>MODULE</em>. Currently, the MWG module is
- the only plug-in module distributed with exiftool. This module adds
- read/write support for tags as recommended by the Metadata Working Group.
- To save typing, <code>-use MWG</code> is assumed if the <code>MWG</code> group is specified for
- any tag on the command line. See the
- <a href="TagNames/MWG.html">MWG Tags documentation</a> for more
- details. Note that this option is not reversible, and remains in effect
- until the application terminates, even across the <code>-execute</code> option.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="utilities">Utilities</a></h3>
- <dl>
- <dt><strong><a name="restore_original" class="item"><strong>-restore_original</strong></a></strong></dt>
- <dt><strong><a name="delete_original" class="item"><strong>-delete_original</strong>[!]</a></strong></dt>
- <dd>
- <p>These utility options automate the maintenance of the <code>_original</code> files
- created by exiftool. They have no effect on files without an <code>_original</code>
- copy. The <strong>-restore_original</strong> option restores the specified files from
- their original copies by renaming the <code>_original</code> files to replace the
- edited versions. For example, the following command restores the originals
- of all JPG images in directory <a href="#dir"><code>DIR</code></a>:</p>
- <pre>
- exiftool -restore_original -ext jpg DIR</pre>
- <p>The <strong>-delete_original</strong> option deletes the <code>_original</code> copies of all files
- specified on the command line. Without a trailing <code>!</code> this option prompts
- for confirmation before continuing. For example, the following command
- deletes <code>a.jpg_original</code> if it exists, after asking "Are you sure?":</p>
- <pre>
- exiftool -delete_original a.jpg</pre>
- <p>These options may not be used with other options to read or write tag values
- in the same command, but may be combined with options such <strong>-ext</strong>, <strong>-if</strong>,
- <strong>-r</strong>, <strong>-q</strong> and <strong>-v</strong>.</p>
- </dd>
- </dl>
- <p>
- </p>
- <h3><a name="advanced_options">Advanced options</a></h3>
- <p>Among other things, the advanced options allow complex processing to be
- performed from a single command without the need for additional scripting.
- This may be particularly useful for implementations such as Windows
- drag-and-drop applications. These options may also be used to improve
- performance in multi-pass processing by reducing the overhead required to
- load exiftool for each invocation.</p>
- <dl>
- <dt><strong><a name="api_opt_val" class="item"><strong>-api</strong> <em>OPT[=VAL]</em></a></strong></dt>
- <dd>
- <p>Set ExifTool API option. <em>OPT</em> is an API option name. The option value is
- set to 1 if <em>=VAL</em> is omitted, or undef if just <em>VAL</em> is omitted. An
- option may not be set to an empty string ("") via the command line, but the
- config file may be used to accomplish this if necessary. See
- <a href="ExifTool.html#options">Image::ExifTool Options</a> for a list of available
- API options. This overrides API options set via the config file.</p>
- </dd>
- <dt><strong><a name="common_args" class="item"><strong>-common_args</strong></a></strong></dt>
- <dd>
- <p>Specifies that all arguments following this option are common to all
- executed commands when <strong>-execute</strong> is used. This and the <strong>-config</strong> option
- are the only options that may not be used inside a <strong>-@</strong> <em>ARGFILE</em>. Note
- that by definition this option and its arguments MUST come after all other
- options on the command line.</p>
- </dd>
- <dt><strong><a name="config_cfgfile" class="item"><strong>-config</strong> <em>CFGFILE</em></a></strong></dt>
- <dd>
- <p>Load specified configuration file instead of the default ".ExifTool_config".
- If used, this option must come before all other arguments on the command
- line. The <em>CFGFILE</em> name may contain a directory specification (otherwise
- the file must exist in the current directory), or may be set to an empty
- string ("") to disable loading of the config file. See the sample
- configuration file and "config.html" in the full ExifTool distribution for
- more information about the ExifTool configuration file.</p>
- </dd>
- <dt><strong><a name="echo_num_text" class="item"><strong>-echo</strong>[<em>NUM</em>] <em>TEXT</em></a></strong></dt>
- <dd>
- <p>Echo text to stdout (<strong>-echo</strong> or <strong>-echo1</strong>) or stderr (<strong>-echo2</strong>). Text is
- output as the command line is parsed, before the processing of any input
- files. <em>NUM</em> may also be 3 or 4 to output text (to stdout or stderr
- respectively) after processing is complete.</p>
- </dd>
- <dt><strong><a name="execute_num" class="item"><strong>-execute</strong>[<em>NUM</em>]</a></strong></dt>
- <dd>
- <p>Execute command for all arguments up to this point on the command line (plus
- any arguments specified by <strong>-common_args</strong>). Allows multiple commands to be
- executed from a single command line. <em>NUM</em> is an optional number that is
- echoed in the "{ready}" message when using the <strong>-stay_open</strong> feature.</p>
- </dd>
- <dt><strong><a name="srcfile_fmt" class="item"><strong>-srcfile</strong> <em>FMT</em></a></strong></dt>
- <dd>
- <p>Specify a different source file to be processed based on the name of the
- original <em>FILE</em>. This may be useful in some special situations for
- processing related preview images or sidecar files. See the <strong>-w</strong> option
- for a description of the <em>FMT</em> syntax. Note that file name <em>FMT</em> strings
- for all options are based on the original <em>FILE</em> specified from the command
- line, not the name of the source file specified by <strong>-srcfile</strong>.</p>
- <p>For example, to copy metadata from NEF files to the corresponding JPG
- previews in a directory where other JPG images may exist:</p>
- <pre>
- exiftool -ext nef -tagsfromfile @ -srcfile %d%f.jpg dir</pre>
- <p>If than one <strong>-srcfile</strong> option is specified, the files are tested in order
- and the first existing source file is processed. If none of the source
- files already exist, then exiftool uses the first <strong>-srcfile</strong> specified.</p>
- <p>A <em>FMT</em> of <code>@</code> may be used to represent the original <em>FILE</em>, which may be
- useful when specifying multiple <strong>-srcfile</strong> options (eg. to fall back to
- processing the original <em>FILE</em> if no sidecar exists).</p>
- </dd>
- <dt><strong><a name="stay_open_flag" class="item"><strong>-stay_open</strong> <em>FLAG</em></a></strong></dt>
- <dd>
- <p>If <em>FLAG</em> is <code>1</code> or <code>True</code>, causes exiftool keep reading from the <strong>-@</strong>
- <em>ARGFILE</em> even after reaching the end of file. This feature allows calling
- applications to pre-load exiftool, thus avoiding the overhead of loading
- exiftool for each command. The procedure is as follows:</p>
- <p>1) Execute <code>exiftool -stay_open True -@ ARGFILE</code>, where <em>ARGFILE</em> is the
- name of an existing (possibly empty) argument file or <code>-</code> to pipe arguments
- from the standard input.</p>
- <p>2) Write exiftool command-line arguments to <em>ARGFILE</em>, one argument per
- line (see the <strong>-@</strong> option for details).</p>
- <p>3) Write <code>-execute\n</code> to <em>ARGFILE</em>, where <a href="#n"><code>\n</code></a> represents a newline
- sequence. (Note: You may need to flush your write buffers here if using
- buffered output.) Exiftool will then execute the command with the arguments
- received up to this point, send a "{ready}" message to stdout when done
- (unless the <strong>-q</strong> or <strong>-T</strong> option is used), and continue trying to read
- arguments for the next command from <em>ARGFILE</em>. To aid in command/response
- synchronization, any number appended to the <code>-execute</code> option is echoed in
- the "{ready}" message. For example, <code>-execute613</code> results in "{ready613}".</p>
- <p>4) Repeat steps 2 and 3 for each command.</p>
- <p>5) Write <code>-stay_open\nFalse\n</code> to <em>ARGFILE</em> when done. This will cause
- exiftool to process any remaining command-line arguments then exit normally.</p>
- <p>The input <em>ARGFILE</em> may be changed at any time before step 5 above by
- writing the following lines to the currently open <em>ARGFILE</em>:</p>
- <pre>
- -stay_open
- True
- -@
- NEWARGFILE</pre>
- <p>This causes <em>ARGFILE</em> to be closed, and <em>NEWARGFILE</em> to be kept open.
- (Without the <strong>-stay_open</strong> here, exiftool would have returned to reading
- arguments from <em>ARGFILE</em> after reaching the end of <em>NEWARGFILE</em>.)</p>
- <p>Note: When writing arguments to a disk file there is a delay of up to 0.01
- seconds after writing <code>-execute\n</code> before exiftool starts processing the
- command. This delay may be avoided by sending a CONT signal to the exiftool
- process immediately after writing <code>-execute\n</code>. (There is no associated
- delay when writing arguments via a pipe with <code>-@ -</code>, so the signal is not
- necessary when using this technique.)</p>
- </dd>
- <dt><strong><a name="userparam_param_val" class="item"><strong>-userParam</strong> <em>PARAM[=VAL]</em></a></strong></dt>
- <dd>
- <p>Set user parameter. <em>PARAM</em> is an arbitrary user parameter name. This
- is an interface to the API UserParam option (see the
- <a href="ExifTool.html#options">Image::ExifTool Options</a> documentation), and
- provides a method to access user-defined parameters from inside tag name
- expressions (as if it were any other tag, see example below), and from
- PrintConv/ValueConv logic (via the ExifTool Options function). Similar to
- the <strong>-api</strong> option, the parameter value is set to 1 if <em>=VAL</em> is omitted,
- or undef if just <em>VAL</em> is omitted.</p>
- <pre>
- exiftool -p '$test from $filename' -userparam test=Hello FILE</pre>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="windows_unicode_file_names">WINDOWS UNICODE FILE NAMES</a></h1>
- <p>In Windows, by default, file and directory names are specified on the
- command line (or in arg files) using the system code page, which varies with
- the system settings. Unfortunately, these code pages are not complete
- character sets, so not all file names may be represented.</p>
- <p>ExifTool 9.79 and later allow the file name encoding to be specified with
- <code>-charset filename=CHARSET</code>, where <code>CHARSET</code> is the name of a valid
- ExifTool character set, preferably <code>UTF8</code> (see the <strong>-charset</strong> option for a
- complete list). Setting this triggers the use of Windows wide-character i/o
- routines, thus providing support for all Unicode file names. But note that
- it is not trivial to pass properly encoded file names on the Windows command
- line (see <a href="http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q18">http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q18</a> for
- details), so placing them in a UTF-8 encoded <strong>-@</strong> argfile is recommended if
- possible.</p>
- <p>When a directory name is provided, the file name encoding need not be
- specified (unless the directory name contains special characters), and
- ExifTool will automatically use wide-character routines to scan the
- directory.</p>
- <p>The filename character set applies to the <em>FILE</em> arguments as well as
- filename arguments of <strong>-@</strong>, <strong>-geotag</strong>, <strong>-o</strong>, <strong>-p</strong>, <strong>-srcfile</strong>,
- <strong>-tagsFromFile</strong>, <strong>-csv</strong>=, <strong>-j</strong>= and <strong>-</strong><em>TAG</em><=. However, it does
- not apply to the <strong>-config</strong> filename, which always uses the system character
- set. The <code>-charset filename=</code> option must come before the <strong>-@</strong> option to
- be effective, but the order doesn't matter with respect to other options.</p>
- <p>Notes:</p>
- <p>1) FileName and Directory tag values still use the same encoding as other
- tag values, and are converted to/from the filename character set when
- writing/reading if specified.</p>
- <p>2) Unicode support is not yet implemented for other Windows-based systems
- like Cygwin.</p>
- <p>3) See <a href="#writing_read_only_files">WRITING READ-ONLY FILES</a> below for a note about editing read-only
- files with Unicode names.</p>
- <p>
- </p>
- <hr />
- <h1><a name="writing_read_only_files">WRITING READ-ONLY FILES</a></h1>
- <p>In general, ExifTool may be used to write metadata to read-only files
- provided that the user has write permission in the directory. However,
- there are two cases where file write permission is also required:</p>
- <p>1) When using the <strong>-overwrite_original_in_place</strong> option.</p>
- <p>2) On Windows if the file has Unicode characters in its name, and a) the
- <strong>-overwrite_original</strong> option is used, or b) the <code>_original</code> backup already
- exists.</p>
- <p>
- </p>
- <hr />
- <h1><a name="reading_examples">READING EXAMPLES</a></h1>
- <p><strong>Note</strong>: Beware when cutting and pasting these examples into your terminal!
- Some characters such as single and double quotes and hyphens may have been
- changed into similar-looking yet functionally-different characters by the
- text formatter used to display this documentation. Also note that Windows
- users must use double quotes instead of single quotes as below around
- arguments containing special characters.</p>
- <dl>
- <dt><strong><a name="exiftool_a_u_g1_a_jpg" class="item">exiftool -a -u -g1 a.jpg</a></strong></dt>
- <dd>
- <p>Print all meta information in an image, including duplicate and unknown
- tags, sorted by group (for family 1).</p>
- </dd>
- <dt><strong><a name="exiftool_common_dir" class="item">exiftool -common dir</a></strong></dt>
- <dd>
- <p>Print common meta information for all images in <code>dir</code>. <code>-common</code> is a
- <a href="http://search.cpan.org/dist/Image-ExifTool/lib/Image/ExifTool/Shortcuts.pm">shortcut tag</a> representing common EXIF meta
- information.</p>
- </dd>
- <dt><strong><a name="exiftool_t_createdate_aperture_shutterspeed_iso_dir_out_txt" class="item">exiftool -T -createdate -aperture -shutterspeed -iso dir > out.txt</a></strong></dt>
- <dd>
- <p>List specified meta information in tab-delimited column form for all images
- in <code>dir</code> to an output text file named "out.txt".</p>
- </dd>
- <dt><strong><a name="exiftool_s_imagesize_exposuretime_b_jpg" class="item">exiftool -s -ImageSize -ExposureTime b.jpg</a></strong></dt>
- <dd>
- <p>Print ImageSize and ExposureTime tag names and values.</p>
- </dd>
- <dt><strong><a name="exiftool_l_canon_c_jpg_d_jpg" class="item">exiftool -l -canon c.jpg d.jpg</a></strong></dt>
- <dd>
- <p>Print standard Canon information from two image files.</p>
- </dd>
- <dt><strong><a name="exiftool_r_w_txt_common_pictures" class="item">exiftool -r -w .txt -common pictures</a></strong></dt>
- <dd>
- <p>Recursively extract common meta information from files in <code>pictures</code>
- directory, writing text output to <code>.txt</code> files with the same names.</p>
- </dd>
- <dt><strong><a name="exiftool_b_thumbnailimage_image_jpg_thumbnail_jpg" class="item">exiftool -b -ThumbnailImage image.jpg > thumbnail.jpg</a></strong></dt>
- <dd>
- <p>Save thumbnail image from <code>image.jpg</code> to a file called <code>thumbnail.jpg</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_b_jpgfromraw_w_jfr_jpg_ext_nef_r" class="item">exiftool -b -JpgFromRaw -w _JFR.JPG -ext NEF -r .</a></strong></dt>
- <dd>
- <p>Recursively extract JPG image from all Nikon NEF files in the current
- directory, adding <code>_JFR.JPG</code> for the name of the output JPG files.</p>
- </dd>
- <dt><strong><a name="exiftool_a_b_w_d_f_t_c_s_preview_all_dir" class="item">exiftool -a -b -W %d%f_%t%-c.%s -preview:all dir</a></strong></dt>
- <dd>
- <p>Extract all types of preview images (ThumbnailImage, PreviewImage,
- JpgFromRaw, etc.) from files in directory "dir", adding the tag name to the
- output preview image file names.</p>
- </dd>
- <dt><strong><a name="exiftool_d_r_a_b_e_y_datetimeoriginal_s_s_ext_jpg" class="item">exiftool -d '%r %a, %B %e, %Y' -DateTimeOriginal -S -s -ext jpg .</a></strong></dt>
- <dd>
- <p>Print formatted date/time for all JPG files in the current directory.</p>
- </dd>
- <dt><strong><a name="exiftool_ifd1_xresolution_ifd1_yresolution_image_jpg" class="item">exiftool -IFD1:XResolution -IFD1:YResolution image.jpg</a></strong></dt>
- <dd>
- <p>Extract image resolution from EXIF IFD1 information (thumbnail image IFD).</p>
- </dd>
- <dt><strong><a name="exiftool_resolution_image_jpg" class="item">exiftool '-*resolution*' image.jpg</a></strong></dt>
- <dd>
- <p>Extract all tags with names containing the word "Resolution" from an image.</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_author_all_a_image_jpg" class="item">exiftool -xmp:author:all -a image.jpg</a></strong></dt>
- <dd>
- <p>Extract all author-related XMP information from an image.</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_b_a_jpg_out_xmp" class="item">exiftool -xmp -b a.jpg > out.xmp</a></strong></dt>
- <dd>
- <p>Extract complete XMP data record intact from <code>a.jpg</code> and write it to
- <code>out.xmp</code> using the special <code>XMP</code> tag (see the Extra tags in
- <a href="TagNames/index.html">Image::ExifTool::TagNames</a>).</p>
- </dd>
- <dt><strong><a name="exiftool_p_filename_has_date_datetimeoriginal_q_f_dir" class="item">exiftool -p '$filename has date $dateTimeOriginal' -q -f dir</a></strong></dt>
- <dd>
- <p>Print one line of output containing the file name and DateTimeOriginal for
- each image in directory <code>dir</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_ee_p_gpslatitude_gpslongitude_gpstimestamp_a_m2ts" class="item">exiftool -ee -p '$gpslatitude, $gpslongitude, $gpstimestamp' a.m2ts</a></strong></dt>
- <dd>
- <p>Extract all GPS positions from an AVCHD video.</p>
- </dd>
- <dt><strong><a name="exiftool_icc_profile_b_w_icc_image_jpg" class="item">exiftool -icc_profile -b -w icc image.jpg</a></strong></dt>
- <dd>
- <p>Save complete ICC_Profile from an image to an output file with the same name
- and an extension of <code>.icc</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_htmldump_w_tmp_f_e_html_t_images" class="item">exiftool -htmldump -w tmp/%f_%e.html t/images</a></strong></dt>
- <dd>
- <p>Generate HTML pages from a hex dump of EXIF information in all images from
- the <code>t/images</code> directory. The output HTML files are written to the <code>tmp</code>
- directory (which is created if it didn't exist), with names of the form
- 'FILENAME_EXT.html'.</p>
- </dd>
- <dt><strong><a name="exiftool_a_b_ee_embeddedimage_w_image_3g3_s_file_pdf" class="item">exiftool -a -b -ee -embeddedimage -W Image_%.3g3.%s file.pdf</a></strong></dt>
- <dd>
- <p>Extract embedded JPG and JP2 images from a PDF file. The output images will
- have file names like "Image_#.jpg" or "Image_#.jp2", where "#" is the
- ExifTool family 3 embedded document number for the image.</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="writing_examples">WRITING EXAMPLES</a></h1>
- <p>Note that quotes are necessary around arguments which contain certain
- special characters such as <code>></code>, <code><</code> or any white space. These
- quoting techniques are shell dependent, but the examples below will work for
- most Unix shells. With the Windows cmd shell however, double quotes should
- be used (eg. -Comment="This is a new comment").</p>
- <dl>
- <dt><strong><a name="exiftool_comment_this_is_a_new_comment_dst_jpg" class="item">exiftool -Comment='This is a new comment' dst.jpg</a></strong></dt>
- <dd>
- <p>Write new comment to a JPG image (replaces any existing comment).</p>
- </dd>
- <dt><strong><a name="exiftool_comment_o_newdir_ext_jpg" class="item">exiftool -comment= -o newdir -ext jpg .</a></strong></dt>
- <dd>
- <p>Remove comment from all JPG images in the current directory, writing the
- modified images to a new directory.</p>
- </dd>
- <dt><strong><a name="exiftool_keywords_exif_keywords_editor_dst_jpg" class="item">exiftool -keywords=EXIF -keywords=editor dst.jpg</a></strong></dt>
- <dd>
- <p>Replace existing keyword list with two new keywords (<code>EXIF</code> and <code>editor</code>).</p>
- </dd>
- <dt><strong><a name="exiftool_keywords_word_o_newfile_jpg_src_jpg" class="item">exiftool -Keywords+=word -o newfile.jpg src.jpg</a></strong></dt>
- <dd>
- <p>Copy a source image to a new file, and add a keyword (<code>word</code>) to the
- current list of keywords.</p>
- </dd>
- <dt><strong><a name="exiftool_exposurecompensation_0_5_a_jpg" class="item">exiftool -exposurecompensation+=-0.5 a.jpg</a></strong></dt>
- <dd>
- <p>Decrement the value of ExposureCompensation by 0.5 EV. Note that += with a
- negative value is used for decrementing because the -= operator is used for
- conditional deletion (see next example).</p>
- </dd>
- <dt><strong><a name="exiftool_credit_xxx_dir" class="item">exiftool -credit-=xxx dir</a></strong></dt>
- <dd>
- <p>Delete Credit information from all files in a directory where the Credit
- value was <code>xxx</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_description_de_k_uuml_hl_e_dst_jpg" class="item">exiftool -xmp:description-de='k&uuml;hl' -E dst.jpg</a></strong></dt>
- <dd>
- <p>Write alternate language for XMP:Description, using HTML character escaping
- to input special characters.</p>
- </dd>
- <dt><strong><a name="exiftool_all_dst_jpg" class="item">exiftool -all= dst.jpg</a></strong></dt>
- <dd>
- <p>Delete all meta information from an image. Note: You should NOT do this to
- RAW images (except DNG) since proprietary RAW image formats often contain
- information in the makernotes that is necessary for converting the image.</p>
- </dd>
- <dt><strong><a name="exiftool_all_comment_lonely_dst_jpg" class="item">exiftool -all= -comment='lonely' dst.jpg</a></strong></dt>
- <dd>
- <p>Delete all meta information from an image and add a comment back in. (Note
- that the order is important: <code>-comment='lonely' -all=</code> would also delete
- the new comment.)</p>
- </dd>
- <dt><strong><a name="exiftool_all_jfif_all_dst_jpg" class="item">exiftool -all= --jfif:all dst.jpg</a></strong></dt>
- <dd>
- <p>Delete all meta information except JFIF group from an image.</p>
- </dd>
- <dt><strong><a name="exiftool_photoshop_all_dst_jpg" class="item">exiftool -Photoshop:All= dst.jpg</a></strong></dt>
- <dd>
- <p>Delete Photoshop meta information from an image (note that the Photoshop
- information also includes IPTC).</p>
- </dd>
- <dt><strong><a name="exiftool_r_xmp_crss_all_dir" class="item">exiftool -r -XMP-crss:all= DIR</a></strong></dt>
- <dd>
- <p>Recursively delete all XMP-crss information from images in a directory.</p>
- </dd>
- <dt><strong><a name="exiftool_thumbnailimage_thumb_jpg_dst_jpg" class="item">exiftool '-ThumbnailImage<=thumb.jpg' dst.jpg</a></strong></dt>
- <dd>
- <p>Set the thumbnail image from specified file (Note: The quotes are necessary
- to prevent shell redirection).</p>
- </dd>
- <dt><strong><a name="exiftool_jpgfromraw_d_f_jfr_jpg_ext_nef_r" class="item">exiftool '-JpgFromRaw<=%d%f_JFR.JPG' -ext NEF -r .</a></strong></dt>
- <dd>
- <p>Recursively write JPEG images with filenames ending in <code>_JFR.JPG</code> to the
- JpgFromRaw tag of like-named files with extension <code>.NEF</code> in the current
- directory. (This is the inverse of the <code>-JpgFromRaw</code> command of the
- <a href="#reading_examples">READING EXAMPLES</a> section above.)</p>
- </dd>
- <dt><strong><a name="exiftool_datetimeoriginal_0_0_0_1_30_0_dir" class="item">exiftool -DateTimeOriginal-='0:0:0 1:30:0' dir</a></strong></dt>
- <dd>
- <p>Adjust original date/time of all images in directory <code>dir</code> by subtracting
- one hour and 30 minutes. (This is equivalent to <code>-DateTimeOriginal-=1.5</code>.
- See <a href="Shift.html">Image::ExifTool::Shift.pl</a> for details.)</p>
- </dd>
- <dt><strong><a name="exiftool_createdate_3_modifydate_3_a_jpg_b_jpg" class="item">exiftool -createdate+=3 -modifydate+=3 a.jpg b.jpg</a></strong></dt>
- <dd>
- <p>Add 3 hours to the CreateDate and ModifyDate timestamps of two images.</p>
- </dd>
- <dt><strong><a name="exiftool_alldates_1_30_if_make_eq_canon_dir" class="item">exiftool -AllDates+=1:30 -if '$make eq "Canon"' dir</a></strong></dt>
- <dd>
- <p>Shift the values of DateTimeOriginal, CreateDate and ModifyDate forward by 1
- hour and 30 minutes for all Canon images in a directory. (The AllDates tag
- is provided as a shortcut for these three tags, allowing them to be accessed
- via a single tag.)</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_city_kingston_image1_jpg_image2_nef" class="item">exiftool -xmp:city=Kingston image1.jpg image2.nef</a></strong></dt>
- <dd>
- <p>Write a tag to the XMP group of two images. (Without the <code>xmp:</code> this tag
- would get written to the IPTC group since <code>City</code> exists in both, and IPTC
- is preferred by default.)</p>
- </dd>
- <dt><strong><a name="unknown" class="item">exiftool -LightSource-='Unknown (0)' dst.tiff</a></strong></dt>
- <dd>
- <p>Delete <code>LightSource</code> tag only if it is unknown with a value of 0.</p>
- </dd>
- <dt><strong><a name="exiftool_whitebalance_auto_whitebalance_tung_dst_jpg" class="item">exiftool -whitebalance-=auto -WhiteBalance=tung dst.jpg</a></strong></dt>
- <dd>
- <p>Set <code>WhiteBalance</code> to <code>Tungsten</code> only if it was previously <code>Auto</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_comment_comment_new_comment_a_jpg" class="item">exiftool -comment-= -comment='new comment' a.jpg</a></strong></dt>
- <dd>
- <p>Write a new comment only if the image doesn't have one already.</p>
- </dd>
- <dt><strong><a name="exiftool_o_d_f_xmp_dir" class="item">exiftool -o %d%f.xmp dir</a></strong></dt>
- <dd>
- <p>Create XMP meta information data files for all images in <code>dir</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_o_test_xmp_owner_phil_title_xmp_file" class="item">exiftool -o test.xmp -owner=Phil -title='XMP File'</a></strong></dt>
- <dd>
- <p>Create an XMP data file only from tags defined on the command line.</p>
- </dd>
- <dt><strong><a name="exiftool_icc_profile_d_f_icc_image_jpg" class="item">exiftool '-ICC_Profile<=%d%f.icc' image.jpg</a></strong></dt>
- <dd>
- <p>Write ICC_Profile to an image from a <code>.icc</code> file of the same name.</p>
- </dd>
- <dt><strong><a name="exiftool_hierarchicalkeywords_keyword_one_children_keyword_b" class="item">exiftool -hierarchicalkeywords='{keyword=one,children={keyword=B}}'</a></strong></dt>
- <dd>
- <p>Write structured XMP information. See
- <a href="http://owl.phy.queensu.ca/~phil/exiftool/struct.html">http://owl.phy.queensu.ca/~phil/exiftool/struct.html</a> for more details.</p>
- </dd>
- <dt><strong><a name="exiftool_trailer_all_image_jpg" class="item">exiftool -trailer:all= image.jpg</a></strong></dt>
- <dd>
- <p>Delete any trailer found after the end of image (EOI) in a JPEG file. A
- number of digital cameras store a large PreviewImage after the JPEG EOI, and
- the file size may be reduced significantly by deleting this trailer. See
- the <a href="TagNames/JPEG.html">JPEG Tags documentation</a> for a
- list of recognized JPEG trailers.</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="copying_examples">COPYING EXAMPLES</a></h1>
- <p>These examples demonstrate the ability to copy tag values between files.</p>
- <dl>
- <dt><strong><a name="exiftool_tagsfromfile_src_cr2_dst_jpg" class="item">exiftool -tagsFromFile src.cr2 dst.jpg</a></strong></dt>
- <dd>
- <p>Copy the values of all writable tags from <code>src.cr2</code> to <code>dst.jpg</code>, writing
- the information to same-named tags in the preferred groups.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_all_all_dst_jpg" class="item">exiftool -TagsFromFile src.jpg -all:all dst.jpg</a></strong></dt>
- <dd>
- <p>Copy the values of all writable tags from <code>src.jpg</code> to <code>dst.jpg</code>,
- preserving the original tag groups.</p>
- </dd>
- <dt><strong><a name="exiftool_all_tagsfromfile_src_jpg_exif_all_dst_jpg" class="item">exiftool -all= -tagsfromfile src.jpg -exif:all dst.jpg</a></strong></dt>
- <dd>
- <p>Erase all meta information from <code>dst.jpg</code> image, then copy EXIF tags from
- <code>src.jpg</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_exif_all_tagsfromfile_all_all_unsafe_bad_jpg" class="item">exiftool -exif:all= -tagsfromfile @ -all:all -unsafe bad.jpg</a></strong></dt>
- <dd>
- <p>Rebuild all EXIF meta information from scratch in an image. This technique
- can be used in JPEG images to repair corrupted EXIF information which
- otherwise could not be written due to errors. The <code>Unsafe</code> tag is a
- shortcut for unsafe EXIF tags in JPEG images which are not normally copied.
- See the <a href="TagNames/index.html">tag name documentation</a> for more details
- about unsafe tags.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_a_jpg_out_xmp" class="item">exiftool -Tagsfromfile a.jpg out.xmp</a></strong></dt>
- <dd>
- <p>Copy meta information from <code>a.jpg</code> to an XMP data file. If the XMP data
- file <code>out.xmp</code> already exists, it will be updated with the new information.
- Otherwise the XMP data file will be created. Only XMP, ICC and MIE files
- may be created like this (other file types may be edited but not created).
- See <a href="#writing_examples">WRITING EXAMPLES</a> above for another technique to generate XMP files.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_a_jpg_xmp_all_thumbnailimage_m_b_jpg" class="item">exiftool -tagsFromFile a.jpg -XMP:All= -ThumbnailImage= -m b.jpg</a></strong></dt>
- <dd>
- <p>Copy all meta information from <code>a.jpg</code> to <code>b.jpg</code>, deleting all XMP
- information and the thumbnail image from the destination.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_title_author_phil_dst_jpg" class="item">exiftool -TagsFromFile src.jpg -title -author=Phil dst.jpg</a></strong></dt>
- <dd>
- <p>Copy title from one image to another and set a new author name.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_a_jpg_iso_tagsfromfile_b_jpg_comment_dst_jpg" class="item">exiftool -TagsFromFile a.jpg -ISO -TagsFromFile b.jpg -comment
- dst.jpg</a></strong></dt>
- <dd>
- <p>Copy ISO from one image and Comment from another image to a destination
- image.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_exif_all_subifd_all_dst_jpg" class="item">exiftool -tagsfromfile src.jpg -exif:all --subifd:all dst.jpg</a></strong></dt>
- <dd>
- <p>Copy only the EXIF information from one image to another, excluding SubIFD
- tags.</p>
- </dd>
- <dt><strong><a name="exiftool_filemodifydate_datetimeoriginal_dir" class="item">exiftool '-FileModifyDate<DateTimeOriginal' dir</a></strong></dt>
- <dd>
- <p>Use the original date from the meta information to set the same file's
- filesystem modification date for all images in a directory. (Note that
- <code>-TagsFromFile @</code> is assumed if no other <strong>-TagsFromFile</strong> is specified when
- redirecting information as in this example.)</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_xmp_all_all_dst_jpg" class="item">exiftool -TagsFromFile src.jpg '-xmp:all<all' dst.jpg</a></strong></dt>
- <dd>
- <p>Copy all possible information from <code>src.jpg</code> and write in XMP format to
- <code>dst.jpg</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_iptc2xmp_args_iptc_all_a_jpg" class="item">exiftool -@ iptc2xmp.args -iptc:all= a.jpg</a></strong></dt>
- <dd>
- <p>Translate IPTC information to XMP with appropriate tag name conversions, and
- delete the original IPTC information from an image. This example uses
- iptc2xmp.args, which is a file included with the ExifTool distribution that
- contains the required arguments to convert IPTC information to XMP format.
- Also included with the distribution are xmp2iptc.args (which performs the
- inverse conversion) and a few more .args files for other conversions between
- EXIF, IPTC and XMP.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_d_f_cr2_r_ext_jpg_dir" class="item">exiftool -tagsfromfile %d%f.CR2 -r -ext JPG dir</a></strong></dt>
- <dd>
- <p>Recursively rewrite all <code>JPG</code> images in <code>dir</code> with information copied from
- the corresponding <code>CR2</code> images in the same directories.</p>
- </dd>
- <dt><strong><a name="exiftool_keywords_make_image_jpg" class="item">exiftool '-keywords+<make' image.jpg</a></strong></dt>
- <dd>
- <p>Add camera make to list of keywords.</p>
- </dd>
- <dt><strong><a name="exiftool_comment_iso_exif_iso_exposure_shutterspeed_dir" class="item">exiftool '-comment<ISO=$exif:iso Exposure=${shutterspeed}' dir</a></strong></dt>
- <dd>
- <p>Set the Comment tag of all images in <code>dir</code> from the values of the EXIF:ISO
- and ShutterSpeed tags. The resulting comment will be in the form "ISO=100
- Exposure=1/60".</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_icc_profile_dst_jpg" class="item">exiftool -TagsFromFile src.jpg -icc_profile dst.jpg</a></strong></dt>
- <dd>
- <p>Copy ICC_Profile from one image to another.</p>
- </dd>
- <dt><strong><a name="exiftool_tagsfromfile_src_jpg_all_all_dst_mie" class="item">exiftool -TagsFromFile src.jpg -all:all dst.mie</a></strong></dt>
- <dd>
- <p>Copy all meta information in its original form from a JPEG image to a MIE
- file. The MIE file will be created if it doesn't exist. This technique can
- be used to store the metadata of an image so it can be inserted back into
- the image (with the inverse command) later in a workflow.</p>
- </dd>
- <dt><strong><a name="exiftool_o_dst_mie_all_all_src_jpg" class="item">exiftool -o dst.mie -all:all src.jpg</a></strong></dt>
- <dd>
- <p>This command performs exactly the same task as the command above, except
- that the <strong>-o</strong> option will not write to an output file that already exists.</p>
- </dd>
- <dt><strong><a name="exiftool_if_jpgfromraw_b_jpgfromraw_w_d_f_ue_jpg_execute_if_previewimage_b_previewimage_w_d_f_ue_jpg_execute_tagsfromfile_srcfile_d_f_ue_jpg_overwrite_original_common_args_ext_jpg_dir" class="item">exiftool -if '$jpgfromraw' -b -jpgfromraw -w %d%f_%ue.jpg -execute
- -if '$previewimage' -b -previewimage -w %d%f_%ue.jpg -execute
- -tagsfromfile @ -srcfile %d%f_%ue.jpg -overwrite_original
- -common_args --ext jpg DIR</a></strong></dt>
- <dd>
- <p>[Advanced] Extract JpgFromRaw or PreviewImage from all but JPG files in DIR,
- saving them with file names like <code>image_EXT.jpg</code>, then add all meta
- information from the original files to the extracted images. Here, the
- command line is broken into three sections (separated by <strong>-execute</strong>
- options), and each is executed as if it were a separate command. The
- <strong>-common_args</strong> option causes the <code>--ext jpg DIR</code> arguments to be applied
- to all three commands, and the <strong>-srcfile</strong> option allows the extracted JPG
- image to be the source file for the third command (whereas the RAW files are
- the source files for the other two commands).</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="renaming_examples">RENAMING EXAMPLES</a></h1>
- <p>By writing the <code>FileName</code> and <code>Directory</code> tags, files are renamed and/or
- moved to new directories. This can be particularly useful and powerful for
- organizing files by date when combined with the <strong>-d</strong> option. New
- directories are created as necessary, but existing files will not be
- overwritten. The format codes %d, %f and %e may be used in the new file
- name to represent the directory, name and extension of the original file,
- and %c may be used to add a copy number if the file already exists (see the
- <strong>-w</strong> option for details). Note that if used within a date format string,
- an extra '%' must be added to pass these codes through the date/time parser.
- (And further note that in a Windows batch file, all '%' characters must also
- be escaped, so in this extreme case '%%%%f' is necessary to pass a simple
- '%f' through the two levels of parsing.) See
- <a href="http://owl.phy.queensu.ca/~phil/exiftool/filename.html">http://owl.phy.queensu.ca/~phil/exiftool/filename.html</a> for additional
- documentation and examples.</p>
- <dl>
- <dt><strong><a name="exiftool_filename_new_jpg_dir_old_jpg" class="item">exiftool -filename=new.jpg dir/old.jpg</a></strong></dt>
- <dd>
- <p>Rename <code>old.jpg</code> to <code>new.jpg</code> in directory <code>dir</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_directory_e_dir" class="item">exiftool -directory=%e dir</a></strong></dt>
- <dd>
- <p>Move all files from directory <code>dir</code> into directories named by the original
- file extensions.</p>
- </dd>
- <dt><strong><a name="exiftool_directory_datetimeoriginal_d_y_m_d_dir" class="item">exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d dir</a></strong></dt>
- <dd>
- <p>Move all files in <code>dir</code> into a directory hierarchy based on year, month and
- day of <code>DateTimeOriginal</code>. eg) This command would move the file
- <code>dir/image.jpg</code> with a <code>DateTimeOriginal</code> of <code>2005:10:12 16:05:56</code> to
- <code>2005/10/12/image.jpg</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_o_directory_datetimeoriginal_d_y_m_d_dir" class="item">exiftool -o . '-Directory<DateTimeOriginal' -d %Y/%m/%d dir</a></strong></dt>
- <dd>
- <p>Same effect as above except files are copied instead of moved.</p>
- </dd>
- <dt><strong><a name="exiftool_filename_f_model_e_dir" class="item">exiftool '-filename<%f_${model;}.%e' dir</a></strong></dt>
- <dd>
- <p>Rename all files in <code>dir</code> by adding the camera model name to the file name.
- The semicolon after the tag name inside the braces causes characters which
- are invalid in Windows file names to be deleted from the tag value (see the
- <strong>-p</strong> option documentation for an explanation).</p>
- </dd>
- <dt><strong><a name="exiftool_filename_createdate_d_y_m_d_h_m_s_c_e_dir" class="item">exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e dir</a></strong></dt>
- <dd>
- <p>Rename all images in <code>dir</code> according to the <code>CreateDate</code> date and time,
- adding a copy number with leading '-' if the file already exists (<code>%-c</code>),
- and preserving the original file extension (<code>%e</code>). Note the extra '%'
- necessary to escape the filename codes (<code>%c</code> and <code>%e</code>) in the date format
- string.</p>
- </dd>
- <dt><strong><a name="exiftool_r_filename_createdate_d_y_m_d_h_m_f_e_dir" class="item">exiftool -r '-FileName<CreateDate' -d %Y-%m-%d/%H%M_%%f.%%e dir</a></strong></dt>
- <dd>
- <p>Both the directory and the filename may be changed together via the
- <code>FileName</code> tag if the new <code>FileName</code> contains a '/'. The example above
- recursively renames all images in a directory by adding a <code>CreateDate</code>
- timestamp to the start of the filename, then moves them into new directories
- named by date.</p>
- </dd>
- <dt><strong><a name="exiftool_filename_createdate_filenumber_jpg_d_y_m_d_ext_jpg" class="item">exiftool '-FileName<${CreateDate}_$filenumber.jpg' -d %Y%m%d -ext jpg .</a></strong></dt>
- <dd>
- <p>Set the filename of all JPG images in the current directory from the
- CreateDate and FileNumber tags, in the form "20060507_118-1861.jpg".</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="geotagging_examples">GEOTAGGING EXAMPLES</a></h1>
- <p>ExifTool implements geotagging via 3 special tags: Geotag (which for
- convenience is also implemented as an exiftool option), Geosync and Geotime.
- The examples below highlight some geotagging features. See
- <a href="http://owl.phy.queensu.ca/~phil/exiftool/geotag.html">http://owl.phy.queensu.ca/~phil/exiftool/geotag.html</a> for additional
- documentation.</p>
- <dl>
- <dt><strong><a name="exiftool_geotag_track_log_a_jpg" class="item">exiftool -geotag track.log a.jpg</a></strong></dt>
- <dd>
- <p>Geotag an image (<code>a.jpg</code>) from position information in a GPS track log
- (<code>track.log</code>). Since the <code>Geotime</code> tag is not specified, the value of
- DateTimeOriginal is used for geotagging. Local system time is assumed
- unless DateTimeOriginal contains a timezone.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_t_log_geotime_2009_04_02_13_41_12_05_00_a_jpg" class="item">exiftool -geotag t.log -geotime='2009:04:02 13:41:12-05:00' a.jpg</a></strong></dt>
- <dd>
- <p>Geotag an image with the GPS position for a specific time. (Note that the
- <code>Geotag</code> tag must be assigned before <code>Geotime</code> for the GPS data to be
- available when <code>Geotime</code> is set.)</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_log_gpx_xmp_geotime_createdate_dir" class="item">exiftool -geotag log.gpx '-xmp:geotime<createdate' dir</a></strong></dt>
- <dd>
- <p>Geotag all images in directory <code>dir</code> with XMP tags instead of EXIF tags,
- based on the image CreateDate. (In this case, the order of the arguments
- doesn't matter because tags with values copied from other tags are always
- set after constant values.)</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_a_log_geosync_20_dir" class="item">exiftool -geotag a.log -geosync=-20 dir</a></strong></dt>
- <dd>
- <p>Geotag images in directory <code>dir</code>, accounting for image timestamps which
- were 20 seconds ahead of GPS.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_a_log_geosync_1_jpg_geosync_2_jpg_dir" class="item">exiftool -geotag a.log -geosync=1.jpg -geosync=2.jpg dir</a></strong></dt>
- <dd>
- <p>Geotag images using time synchronization from two previously geotagged images
- (1.jpg and 2.jpg), synchronizing the image and GPS times using a linear time
- drift correction.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_a_log_geotime_createdate_01_00_dir" class="item">exiftool -geotag a.log '-geotime<${createdate}+01:00' dir</a></strong></dt>
- <dd>
- <p>Geotag images in <code>dir</code> using CreateDate with the specified timezone. If
- CreateDate already contained a timezone, then the timezone specified on the
- command line is ignored.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_a_jpg" class="item">exiftool -geotag= a.jpg</a></strong></dt>
- <dd>
- <p>Delete GPS tags which may have been added by the geotag feature. Note that
- this does not remove all GPS tags -- to do this instead use <code>-gps:all=</code>.</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_geotag_a_jpg" class="item">exiftool -xmp:geotag= a.jpg</a></strong></dt>
- <dd>
- <p>Delete XMP GPS tags which were added by the geotag feature.</p>
- </dd>
- <dt><strong><a name="exiftool_xmp_geotag_track_log_a_jpg" class="item">exiftool -xmp:geotag=track.log a.jpg</a></strong></dt>
- <dd>
- <p>Geotag an image with XMP tags, using the time from DateTimeOriginal.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_a_log_geotag_b_log_r_dir" class="item">exiftool -geotag a.log -geotag b.log -r dir</a></strong></dt>
- <dd>
- <p>Combine multiple track logs and geotag an entire directory tree of images.</p>
- </dd>
- <dt><strong><a name="exiftool_geotag_tracks_log_r_dir" class="item">exiftool -geotag 'tracks/*.log' -r dir</a></strong></dt>
- <dd>
- <p>Read all track logs from the <code>tracks</code> directory.</p>
- </dd>
- <dt><strong><a name="exiftool_p_gpx_fmt_d_y_m_dt_h_m_sz_dir_out_gpx" class="item">exiftool -p gpx.fmt -d %Y-%m-%dT%H:%M:%SZ dir > out.gpx</a></strong></dt>
- <dd>
- <p>Generate a GPX track log from all images in directory <code>dir</code>. This example
- uses the <code>gpx.fmt</code> file included in the full ExifTool distribution package
- and assumes that the images in <code>dir</code> have all been previously geotagged.</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="piping_examples">PIPING EXAMPLES</a></h1>
- <dl>
- <dt><strong><a name="cat_a_jpg_exiftool" class="item">cat a.jpg | exiftool -</a></strong></dt>
- <dd>
- <p>Extract information from stdin.</p>
- </dd>
- <dt><strong><a name="exiftool_image_jpg_thumbnailimage_b_exiftool" class="item">exiftool image.jpg -thumbnailimage -b | exiftool -</a></strong></dt>
- <dd>
- <p>Extract information from an embedded thumbnail image.</p>
- </dd>
- <dt><strong><a name="cat_a_jpg_exiftool_iptc_keywords_fantastic_b_jpg" class="item">cat a.jpg | exiftool -iptc:keywords+=fantastic - > b.jpg</a></strong></dt>
- <dd>
- <p>Add an IPTC keyword in a pipeline, saving output to a new file.</p>
- </dd>
- <dt><strong><a name="curl_s_http_a_domain_com_bigfile_jpg_exiftool_fast" class="item">curl -s <a href="http://a.domain.com/bigfile.jpg">http://a.domain.com/bigfile.jpg</a> | exiftool -fast -</a></strong></dt>
- <dd>
- <p>Extract information from an image over the internet using the cURL utility.
- The <strong>-fast</strong> option prevents exiftool from scanning for trailer information,
- so only the meta information header is transferred.</p>
- </dd>
- <dt><strong><a name="exiftool_a_jpg_thumbnailimage_b_exiftool_comment_wow_exiftool_a_jpg_thumbnailimage" class="item">exiftool a.jpg -thumbnailimage -b | exiftool -comment=wow - |
- exiftool a.jpg -thumbnailimage'<=-'</a></strong></dt>
- <dd>
- <p>Add a comment to an embedded thumbnail image. (Why anyone would want to do
- this I don't know, but I've included this as an example to illustrate the
- flexibility of ExifTool.)</p>
- </dd>
- </dl>
- <p>
- </p>
- <hr />
- <h1><a name="diagnostics">DIAGNOSTICS</a></h1>
- <p>The exiftool application exits with a status of 0 on success, or 1 if an
- error occurred or if all files failed the <strong>-if</strong> condition (for any of the
- commands if <strong>-execute</strong> was used).</p>
- <p>
- </p>
- <hr />
- <h1><a name="author">AUTHOR</a></h1>
- <p>Copyright 2003-2016, Phil Harvey</p>
- <p>This is free software; you can redistribute it and/or modify it under the
- same terms as Perl itself.</p>
- <p>
- </p>
- <hr />
- <h1><a name="see_also">SEE ALSO</a></h1>
- <p><a href="ExifTool.html">Image::ExifTool(3pm)</a>,
- <a href="TagNames/index.html">Image::ExifTool::TagNames(3pm)</a>,
- <a href="http://search.cpan.org/dist/Image-ExifTool/lib/Image/ExifTool/Shortcuts.pm">Image::ExifTool::Shortcuts(3pm)</a>,
- <a href="Shift.html">Image::ExifTool::Shift.pl</a></p>
- <table border="0" width="100%" cellspacing="0" cellpadding="3">
- <tr><td class="block" style="background-color: #cccccc" valign="middle">
- <big><strong><span class="block"> exiftool Application Documentation</span></strong></big>
- </td></tr>
- </table>
- </body>
- </html>
|