neulab/tldr huggingface dataset:
option [arg]     long option  description -a  tim          --adjust     Modify time stamps.  [+|-]HH[:MM[:SS[.mmm]]] -b               --binary     This option is obsolete and should not be used.  Reserved for test suite (with option -pC) -c  txt          --comment    JPEG comment string to set in the image ('modify' action).  ... -d  tgt          --delete     Delete target(s) for the 'delete' action. ... -D  +-n          --days       Time  adjustment by a positive or negative number of days ... -e  tgt          --extract    Extract target(s) for the 'extract' action. -f               --force      Do not prompt before overwriting existing  files ... -F               --Force      Do not prompt before renaming files (Force rename) ... -g  key          --grep       Only output info for this Exiv2 key -h               --help       Display help and exit. -i  tgt          --insert     Insert target(s) for the 'insert' action. ... -k               --keep       Preserve file timestamps when updating files -K  key          --key        Report key.  Similar to -g (grep) however key must match exactly. -l  dir          --location   Location (directory) for files to be inserted or extracted. -m  file         --modify     read commands from cmd-file -M  cmd          --Modify     Command line for the 'modify' action. ... -n  enc          --encode     Charset to decode Exif Unicode user comments. See: man 3 iconv_open -O  +-n          --months     Time adjustment by a positive or negative number of months, ... -p  mod          --print      Print report (common reports) -P  flg          --Print      Print report (fine grained control) -q               --quiet      Silence warnings and error messages from the Exiv2 library ... -Q  lvl          --log        Set the log-level to 'd'(ebug), 'i'(nfo), 'w'(arning), 'e'(rror) -r  fmt          --rename     Filename format for the 'rename' action. ... -S  suf          --suffix     Use suffix .suf for source files for insert command. -t               --timestamp  Set the file timestamp according to the Exif create timestamp ... -T               --Timestamp  Only set the file timestamp according to Exif create timestamp ... -u               --unknown    Show unknown tags ... -v               --verbose    verbose -V               --version    Show the program version and exit. -Y  +-n          --years      Time adjustment by a positive or negative number of years ...
act              pr | ex | in | rm | ad | mo | mv | fi | fc print, extract, insert, delete, adjust, modify, rename, fixiso, fixcom
cmd              See "Commands" below.
flg              E | I | X | x | g | k | l | n | y | c | s | v | t | h Exif, IPTC, XMP, num, grp, key, label, name, type, count, size, vanilla, translated, hex
fmt              Default format is %Y%m%d_%H%M%S.
lvl              d | i | i | w | e debug, info, warning, error
mod              s | a | e | t | v | h | i | x | c | p | i | C | R | S | X summary, all, exif, translated, vanilla, hex, iptc, xmp, comment, preview, ICC Profile, Recursive Structure, Simple Structure, raw XMP
tgt              a | c | e | i | p | t | x | C | X | XX | - all, comment, exif, iptc, preview, thumb, xmp, ICC Profile, SideCar, RawXMP, stdin/out
-V     Show the program version and exit. When -V is combined with -v (Verbose version), build information is printed to standard output along with a list of shared libraries which have been loaded into memory. Verbose version is supported on Windows (MSVC, Cygwin and MinGW builds), macOS and Linux and is provided for test and debugging.
-v     Be verbose during the program run.
-q     Silence warnings and error messages from the Exiv2 library during the program run (quiet). Note that options -v and -q can be used at the same time.
-Q lvl Set the log-level to 'd'(ebug), 'i'(nfo), 'w'(arning), 'e'(rror) or 'm'(ute). The default log-level is 'w'. -Qm is equivalent to -q. All log messages are written to standard error.
-u     Show unknown tags (default is to suppress tags which don't have a name).
-g key Only keys which match the given key (grep). Multiple -g options can be used to filter info to less keys. Example: exiv2 -v -V -g webready -g time.  The default exiv2 command prints a "summary report" which is quite short.  When you use -g without a -pmod option, you do not get a summary report and in effect you get -g pattern -pa image ...
$ bin/exiv2 -g Date http://clanmills.com/Stonehenge.jpg Exif.Image.DateTime                 Ascii    20  2015:07:16 20:25:28 Exif.Photo.DateTimeOriginal         Ascii    20  2015:07:16 15:38:54 Exif.Photo.DateTimeDigitized        Ascii    20  2015:07:16 15:38:54 Exif.NikonWt.DateDisplayFormat      Byte      1  Y/M/D Exif.GPSInfo.GPSDateStamp           Ascii    11  2015:07:16 Xmp.xmp.ModifyDate                  XmpText  25  2015-07-16T20:25:28+01:00
You may use -pmod filters to further filter output.  For example: $ bin/exiv2 -px -g Date http://clanmills.com/Stonehenge.jpg Xmp.xmp.ModifyDate                           XmpText    25  2015-07-16T20:25:28+01:00
The option -g (--grep) applies to keys and not values. The key may finish with the optional modifier /i to indicate case insensitive.
-K key Only report data for given key. Multiple -K options can be used to report more than a single key. $ exiv2 -K Exif.Photo.DateTimeDigitized -K Exif.Photo.DateTimeOriginal -pt R.jpg Exif.Photo.DateTimeOriginal   Ascii    20  2011:09:18 16:25:48 Exif.Photo.DateTimeDigitized  Ascii    20  2011:09:18 16:25:48
-n enc Charset to use to decode Exif Unicode user comments. enc is a name understood by iconv_open(3), e.g., 'UTF-8'.
-k     Preserve file timestamps when updating files (keep). Can be used with all options which update files. The flag is ignored by read- only options.
-t     Set the file timestamp according to the Exif create timestamp in addition to renaming the file (overrides -k). This option is only used with the 'rename' action.  See Exif DateTime below for additional information.
-T     Only set the file timestamp according to the Exif create timestamp, do not rename the file (overrides -k). This option is only used with the 'rename' action. Note: On Windows you may have to set the TZ environment variable for this option to work correctly.  See Exif DateTime below for additional information.
-f,-F  These options are used by the commands 'rename' and 'extract' to determine the file overwrite policy.  These options are usually combined with -v/--verbose to provide additional status output.
The options --force and --Force apply to the 'rename' command. The 'extract' command treats --force and --Force as permission to overwrite.
The default behaviour is to prompt the user. -f = Do not prompt before overwriting existing files. -F = Do not prompt before renaming files. Appends '_1' ('_2', ...) to the name of the new file.  For example:
$ curl --silent -O http://clanmills.com/Stonehenge.jpg $ exiv2 --verbose --Force rename Stonehenge.jpg File 1/1: Stonehenge.jpg Renaming file to ./20150716_153854.jpg $ curl --silent -O http://clanmills.com/Stonehenge.jpg $ exiv2 --verbose --Force rename Stonehenge.jpg File 1/1: Stonehenge.jpg Renaming file to ./20150716_153854_1.jpg
The 'rename' command will only overwrite files when the option --force is used.  The option --Force is provided to avoid unintentional loss of valuable image files.
The 'extract' command will overwrite files when either --force or --Force is used.  Overwriting extracted files will not cause the loss of image files.
-r fmt Filename format for the 'rename' action. The format string follows strftime(3) and supports the following keywords:
:basename:     original filename without extension :dirname:      name of the directory holding the original file :parentname:   name of parent directory Default filename format is %Y%m%d_%H%M%S.
-a time Time adjustment in the format [-]HH[:MM[:SS]]. This option is only used with the 'adjust' action. Examples: 1 adds one hour, 1:01 adds one hour and one minute, -0:00:30 subtracts 30 seconds.  See Exif DateTime below for additional information.
-Y yrs Time adjustment by a positive or negative number of years, for the 'adjust' action.
-O mon Time adjustment by a positive or negative number of months, for the 'adjust' action.
-D day Time adjustment by a positive or negative number of days, for the 'adjust' action.
-p mode Print mode for the 'print' action. Possible modes are:
s : print a summary of the Exif metadata (the default) a : print Exif, IPTC and XMP metadata (shortcut for -Pkyct) e : print Exif metadata (shortcut for -PEkycv) t : interpreted (translated) Exif tags (-PEkyct) v : plain Exif tag values (-PExgnycv) h : hexdump of the Exif data (-PExgnycsh) i : IPTC datasets (-PIkyct) x : XMP properties (-PXkyct) c : JPEG comment p : list available image previews, sorted by preview image size in pixels C : print image ICC Profile (jpg, png, tiff, webp, cr2, jp2 only) R : print image structure recursively (jpg, png, tiff, webp, cr2, jp2 only) S : print image structure information (jpg, png, tiff, webp, cr2, jp2 only) X : print "raw" XMP (jpg, png, tiff, webp, cr2, jp2 only)
-P flgs Print flags for fine control of the tag list ('print' action). Allows control of the type of metadata as well as data columns included in the print output.  Valid flags are:
E : include Exif tags in the list I : IPTC datasets
X : XMP properties x : print a column with the tag number g : group name k : key l : tag label n : tag name y : type c : number of components (count) s : size in bytes v : plain data value (vanilla values) V : plain data value AND the word 'set ' (for use with exiv2 -m-) t : interpreted (translated) human readable data h : hexdump of the data
-d tgt Delete target(s) for the 'delete' action. Possible targets are:
a : all supported metadata (the default) e : Exif section t : Exif thumbnail only i : IPTC data x : XMP packet c : JPEG comment C : ICC Profile I : All IPTC data
-i tgt Insert target(s) for the 'insert' action. Possible targets are the same as those for the -d option, plus an optional modifier:
X : Insert metadata from an XMP sidecar file <file>.xmp. The remaining insert targets determine what metadata to insert from the sidecar file. Possible are Exif, IPTC and XMP and the default is all of these. Note that the inserted XMP properties include those converted to Exif and IPTC.
XX: Insert "raw" XMP metadata from a sidecar (see option -pX)
- : Read from stdin.  This option is intended for "filter" operations such as: $ exiv2 -e{tgt}- filename | xmllint .... | exiv2 -i{tgt}- filename
Only JPEG thumbnails can be inserted (not TIFF thumbnails), and must be named file-thumb.jpg.
-e tgt Extract target(s) for the 'extract' action. Possible targets are the same as those for the -d option, plus a target to extract preview images and a modifier to generate an XMP sidecar file: p[<n>[,<m> ...]] : Extract preview images. The optional comma separated list of preview image numbers is used to determine which preview images to extract. The available preview images and their numbers are displayed with the 'print' option -pp.
C : Extract embedded ICC profile to <file>.icc
X : Extract metadata to an XMP sidecar file <file>.xmp. The remaining extract targets determine what metadata to extract to the sidecar file. Possible are Exif, IPTC and XMP and the default is all of these.
XX: Extract "raw" XMP metadata to a sidecar (see -pX) You may not use modify commands with the -eXX option and only XMP is written to the sidecar.
- Output to stdout (see -i tgt for an example of this feature)
-c txt JPEG comment string to set in the image ('modify' action). This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the-fly.
-m file Command file for the 'modify' action. This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the- fly.  -m- represents standard-input.
-M cmd Command line for the 'modify' action. This option can also be used with the 'extract' and 'insert' actions to modify metadata on-the- fly.  The format for the commands is the same as that of the lines of a command file.
-l dir Location (directory) for files to be inserted or extracted.
-S .suf Use suffix .suf for source files in 'insert' action.
Commands for the 'modify' action can be read from a command file, e.g.,
$ exiv2 -m cmd.txt image.jpg
or given on the command line, as in
$ exiv2 -M"add Iptc.Application2.Credit String Mr. Smith" image.jpg
Note the quotes. Multiple -m and -M options can be combined, and a non- standard XMP namespace registered.
$ exiv2 -M"reg myprefix http://ns.myprefix.me/" -M"add Xmp.myprefix.Whom Mr. Smith" -M"set Exif.Image.Artist Mr. Smith" image.jpg
When writing Exif, IPTC and XMP metadata, exiv2 enforces only a correct metadata structure. It is possible to write tags with types and values different from those specified in the standards, duplicate Exif tags, undefined tags, or incomplete metadata. While exiv2 is able to read all metadata that it can write, other programs may have difficulties with images that contain non standard-conforming metadata.
Command format The format of a command is
set | add | del key [[type] value]
set    Set the value of an existing tag with a matching key or add the tag.
add    Add a tag (unless key is a non-repeatable IPTC key; nothing prevents you from adding duplicate Exif tags).
del    Delete all occurrences of a tag (requires only a key).
key    Exiv2 Exif, IPTC or XMP key.
type   Exif keys: Byte | Ascii | Short | Long | Rational | Undefined | SShort | SLong | SRational | Comment IPTC keys: String | Date | Time | Short | Undefined XMP keys:  XmpAlt | XmpBag | XmpSeq | LangAlt
A default type is used if none is explicitly given. The default is determined based on key.
value  The remaining text on the line is the value. It can optionally be enclosed in single quotes ('value') or double quotes ("value").
The value is optional. Not providing any value is equivalent to an empty value ("") and is mainly useful to create an XMP array property, e.g., a bag.
The format of Exif Comment values include an optional charset specification at the beginning.  Comments are used by the tags Exif.Photo.UserComment, Exif.GPSInfo.GPSProcessingMethod and Exif.GPSInfo.GPSAreaInformation.  Comments are stored as Undefined tags with an 8 byte encoding definition follow by the encoded data. The charset is specified as follows:
[charset=Ascii|Jis|Unicode|Undefined] comment charset=Undefined is the default
$ exiv2 -M'set Exif.Photo.UserComment charset=Ascii My photo' x.jpg $ exiv2 -pa --grep UserComment x.jpg Exif.Photo.UserComment         Undefined  16  My photo $ exiv2 -pv --grep UserComment x.jpg 0x9286 Photo       UserComment Undefined  16  charset=Ascii My photo
$ exiv2 -M'set Exif.Photo.UserComment charset=Unicode \u0052\u006f\u0062\u0069\u006e' x.jpg $ exiv2 -pa --grep UserComment x.jpg Exif.Photo.UserComment                       Undefined  18  Robin $ exiv2 -pv --grep UserComment x.jpg 0x9286 Photo        UserComment                 Undefined  18  charset=Unicode Robin
$ exiv2 -M'set Exif.GPSInfo.GPSProcessingMethod HYBRID-FIX' x.jpg $ exiv2 -pa --grep ProcessingMethod        x.jpg Exif.GPSInfo.GPSProcessingMethod             Undefined  18  HYBRID-FIX $ exiv2 -pv --grep ProcessingMethod        x.jpg 0x001b GPSInfo     GPSProcessingMethod       Undefined  18  HYBRID-FIX
The format for an IPTC Date value is: YYYY-MM-DD (year, month, day)
The format for an IPTC Time value is: HH:MM:SS (hours, minutes, seconds) and may optionally be followed by: -HH:MM or +HH:MM (hours, minutes ahead/behind UTC)
The format of Rational (and SRational) is one of: integer | integer/integer | Fnumber | number Rational Examples:
$ exiv2 "-Mset Exif.Photo.MaxApertureValue 557429/62500" X.jpg $ exiv2 "-Mset Exif.Photo.MaxApertureValue F5.6" X.jpg
The Rational format Fnumber is for the convenience of setting aperture values.  Aperture values are stored in Exif is an APEX value which can be evaluated by the expression:
apex-value  =    log(Fnumber) * 2.0 / log(2.0) number      = exp(apex-value * log(2.0) / 2.0)
The Rational format Fnumber is valid for any Rational, even when the key is not an Aperture.  More information about APEX value is available from: http://en.wikipedia.org/wiki/APEX_system
The format of XMP LangAlt values includes an optional language qualifier: lang="language-code" text
The double quotes around the language-code are optional. If no languge qualifier is supplied, then the value of "x-default" is used. More information on the language format can be found at: https://www.ietf.org/rfc/rfc3066.txt
$ exiv2 -M'set Xmp.dc.title lang="de-DE" Euros' X.jpg $ exiv2 -M'set Xmp.dc.title lang="en-GB" Pounds' X.jpg $ exiv2 -M'set Xmp.dc.title lang="en-US" In God We Trust' X.jpg $ exiv2 -M'set Xmp.dc.title lang=fr-FR Euros' X.jpg $ exiv2 -M'set Xmp.dc.title lang=jp Yen' X.jpg $ exiv2 -M'set Xmp.dc.title All others pay cash' X.jpg
To remove a language specification, set the value to '' (empty string) $ exiv2 -M'set Xmp.dc.title lang="en-US"' X.jpg To remove all language specifications, delete the key: $ exiv2 -M'del Xmp.dc.title' X.jpg To register additional XMP namespaces, combine the command with: reg prefix namespace
Command file format Empty lines and lines starting with # in a command file are ignored (comments). Remaining lines are commands as described above.
Exiv2 displays metadata tags and values.
The tag is a triplet of Family.Group.Tagname.  The following groups are defined for the family Exif:
GPSInfo      Canon           Fujifilm     NikonMe         OlympusFe7        SonyMisc2b Image        CanonCf                      NikonPc         OlympusFe9        SonyMisc3c Image2       CanonCs         Nikon1       NikonPreview    OlympusFi         SonyMinolta Image3       CanonFi         Nikon2       NikonSi01xx     OlympusIp         SonySInfo1 Iop          CanonPa         Nikon3       NikonSi02xx     OlympusRd MakerNote    CanonPi         NikonAFT     NikonSiD300a    OlympusRd2        Samsung2 MpfInfo      CanonPr         NikonAf      NikonSiD300b    OlympusRi         SamsungPictureWizard Photo        CanonSi         NikonAf2     NikonSiD40                        SamsungPreview SubImage1    CanonTi         NikonAf22    NikonSiD80      Sigma SubImage2                    NikonCb1     NikonVr SubImage3    Casio           NikonCb2     NikonWt         Sony1 SubImage4    Casio2          NikonCb2a                    Sony1Cs SubImage5                    NikonCb3     Olympus         Sony1Cs2 SubImage6    Minolta         NikonCb4     Olympus2        Sony1MltCs7D SubImage7    MinoltaCs5D     NikonFi      OlympusCs       Sony1MltCsA100 SubImage8    MinoltaCs7D     NikonFl1     OlympusEq       Sony1MltCsNew SubImage9    MinoltaCsNew    NikonFl2     OlympusFe1      Sony1MltCsOld SubThumb1    MinoltaCsOld    NikonFl3     OlympusFe2      Sony2 Thumbnail                    NikonIi      OlympusFe3      Sony2Cs Panasonic       NikonLd1     OlympusFe4      Sony2Cs2 Pentax       PanasonicRaw    NikonLd2     OlympusFe5      Sony2Fp PentaxDng                    NikonLd3     OlympusFe6      SonyMisc1
Exiv2 supports Exif 2.2 Standard Tags.  Exiv2 also supports reading and writing manufacturer's MakerNote.  The information in Exif.Photo.MakerNote is encoded as manufacturer's sub-records.  For example, CanonCs are Camera Settings, NikonAf are Nikon Auto Focus records, NikonCb are Nikon Color Balance Records.  Every tag is defined by a unique tagId (16 bit integer) which is unique within a Group.
You can query Exiv2 groups and tags with the sample program taglist which is documented in README-SAMPLES.md
Exif Metadata values are defined in the Exif Standard.  All data is an array of data elements.  The Count defines the number elements in the array.  All elements in an array have the same type.
Type               Explanation 1 BYTE            An 8-bit unsigned integer. 2 ASCII           7-bit ASCII. NUL terminated. 3 SHORT           A 16-bit (2-byte) unsigned integer. 4 LONG            A 32-bit (4-byte) unsigned integer 5 RATIONAL        Two LONGs. Numerator, denominator. 7 UNDEFINED       An 8-bit byte. 8 SSHORT          A 16-bit (2-byte) signed integer. 9 SLONG           A 32-bit (4-byte) signed integer. 10 SRATIONAL       Two SLONGs. Numerator, denominator.
The printing flag t = translated and is intended for human use.  Scripts should never use translated values as they are localised and the format may change as Exiv2 evolves.  The printing flag v reports the values recorded in the metadata and should be used by scripts.
Exif DateTime An Exif DateTime string is stored as 20 ascii bytes (including trailing nul) in the format:
YYYY:MM:DD HH:MM:SS
The exiv2 command-line program options -t and -T will accept files in which the Date has been incorrectly stored as YYYY-MM-DD.  The option -a enables the user to adjust the DateTime in the file and applies the YYYY:MM:DD HH:MM:SS standard.
Exiv2 can read an optional configuration file ~/.exiv2 on Unix systems and %USERPROFILE%\exiv2.ini on Windows (using a Visual Studio build). Cygwin and MinGW/msys2 follow the unix convention and use ~/.exiv2  You can determine the location of the configuration file with the command:
$ exiv2 --verbose --version --grep config_path exiv2 0.27.0.1 config_path=/Users/rmills/.exiv2
The purpose of the configuration file is to define your own lenses for recognition by Exiv2.  The configuration file is in Windows .ini format and has sections for each of the major camera manufactures canon,nikon,pentax,minolta,olympus and sony.  The lens metadata is stored as a integer called the lensID.  You can change the lens name associated with any lensID.
$ cat ~/.exiv2 [nikon] 146=Robin's Sigma Lens  <--- The name of your lens
You obtain the lensID for your camera with the command: $ exiv2 -pv --grep lens/i http://clanmills.com/Stonehenge.jpg 0x0083 Nikon3       LensType           Byte       1  14 0x0084 Nikon3       Lens               Rational   4  180/10 2500/10 35/10 63/10 0x008b Nikon3       LensFStops         Undefined  4  55 1 12 0 0x000c NikonLd3     LensIDNumber       Byte       1  146 <--- This number 0x000d NikonLd3     LensFStops         Byte       1  55
$ exiv2 *.jpg Prints a summary of the Exif information for all JPEG files in the directory.  The summary report is rather brief and presentation does not use the Family.Group.Tag convention.
If you use --grep pattern, the default becomes -pa.  See -g/grep above.
$ exiv2 -g Date http://clanmills.com/Stonehenge.jpg $ exiv2 -pi image.jpg Prints the IPTC metadata of the image.
$ exiv2 rename img_1234.jpg Renames img_1234.jpg (taken on 13-Nov-05 at 22:58:31) to 20051113_225831.jpg
$ exiv2 -r'basename_%Y%m' rename img_1234.jpg Renames img_1234.jpg to img_1234_200511.jpg
$ exiv2 -et img1.jpg img2.jpg Extracts the Exif thumbnails from the two files into img1-thumb.jpg and img2-thumb.jpg.
$ exiv2 -it img1.jpg img2.jpg Inserts (copies) metadata from img1.exv to img1.jpg and from img2.exv to img2.jpg.
$ exiv2 -ep1,2 image.jpg Extracts previews 1 and 2 from the image to the files image-preview1.jpg and image-preview2.jpg.
$ exiv2 -eiX image.jpg Extracts IPTC datasets into an XMP sidecar file image.xmp and in the process converts them to "IPTC Core" XMP schema.
$ exiv2 -iixX image.jpg Inserts IPTC and XMP metadata from an XMP sidecar file image.xmp into image.jpg.  The resulting IPTC datasets are converted from the "IPTC Core" XMP schema properties in the sidecar file to the older IPTC IIM4 format. The inserted XMP properties include those in the "IPTC Core" XMP schema.
$ exiv2 -M"set Exif.Photo.UserComment charset=Ascii New Exif comment" image.jpg Sets the Exif comment to an ASCII string.
$ exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" \ -M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg Sets the latitude to 4 degrees, 15 minutes and 33 seconds north. The Exif standard stipulates that the GPSLatitude tag consists of three Rational numbers for the degrees, minutes and seconds of the latitude and GPSLatitudeRef contains either 'N' or 'S' for north or south latitude respectively.
$ exiv2 -l/tmp -S.CRW insert /data/*.JPG Copy all metadata from CRW files in the /tmp directory to JPG files with corresponding basenames in the /data directory. Note that this copies metadata as is, without any modifications to adapt it to the requirements of the target format. Some tags copied like this may not make sense in the target image.
https://exiv2.org/sample.html#modify Sample command files. https://exiv2.org/metadata.html Taglists with key and default type values.
exiv2 was written by Andreas Huggel and others. The Exiv2 project web site is https://exiv2.org. The code is hosted on GitHub at https://github.com/exiv2/exiv2
DATE(1)                           User Commands                          DATE(1)
date - print or set the system date and time
date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
-d, --date=STRING display time described by STRING, not 'now'
--debug annotate the parsed date, and warn about questionable usage to stderr
-f, --file=DATEFILE like --date; once for each line of DATEFILE
-I[FMT], --iso-8601[=FMT] output date/time in ISO 8601 format.  FMT='date' for date only (the default), 'hours', 'minutes', 'seconds', or 'ns' for date and time to the indicated precision.  Example: 2006-08-14T02:34:56-06:00
-R, --rfc-email output date and time in RFC 5322 format.  Example: Mon, 14 Aug 2006 02:34:56 -0600
--rfc-3339=FMT output date/time in RFC 3339 format.  FMT='date', 'seconds', or 'ns' for date and time to the indicated precision.  Example: 2006-08-14 02:34:56-06:00
-r, --reference=FILE display the last modification time of FILE
-s, --set=STRING set time described by STRING
-u, --utc, --universal print or set Coordinated Universal Time (UTC)
FORMAT controls the output.  Interpreted sequences are:
%%     a literal %
%a     locale's abbreviated weekday name (e.g., Sun)
%A     locale's full weekday name (e.g., Sunday)
%b     locale's abbreviated month name (e.g., Jan)
%B     locale's full month name (e.g., January)
%c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)
%C     century; like %Y, except omit last two digits (e.g., 20)
%d     day of month (e.g., 01)
%D     date; same as %m/%d/%y
%e     day of month, space padded; same as %_d
%F     full date; like %+4Y-%m-%d
%g     last two digits of year of ISO week number (see %G)
%G     year of ISO week number (see %V); normally useful only with %V
%h     same as %b
%H     hour (00..23)
%I     hour (01..12)
%j     day of year (001..366)
%k     hour, space padded ( 0..23); same as %_H
%l     hour, space padded ( 1..12); same as %_I
%m     month (01..12)
%M     minute (00..59)
%n     a newline
%N     nanoseconds (000000000..999999999)
%p     locale's equivalent of either AM or PM; blank if not known
%P     like %p, but lower case
%q     quarter of year (1..4)
%r     locale's 12-hour clock time (e.g., 11:11:04 PM)
%R     24-hour hour and minute; same as %H:%M
%s     seconds since the Epoch (1970-01-01 00:00 UTC)
%S     second (00..60)
%t     a tab
%T     time; same as %H:%M:%S
%u     day of week (1..7); 1 is Monday
%U     week number of year, with Sunday as first day of week (00..53)
%V     ISO week number, with Monday as first day of week (01..53)
%w     day of week (0..6); 0 is Sunday
%W     week number of year, with Monday as first day of week (00..53)
%x     locale's date representation (e.g., 12/31/99)
%X     locale's time representation (e.g., 23:13:48)
%y     last two digits of year (00..99)
%Y     year
%z     +hhmm numeric time zone (e.g., -0400)
%:z    +hh:mm numeric time zone (e.g., -04:00)
%::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)
%Z     alphabetic time zone abbreviation (e.g., EDT)
By default, date pads numeric fields with zeroes.  The following optional flags may follow '%':
-      (hyphen) do not pad the field
_      (underscore) pad with spaces
0      (zero) pad with zeros
+      pad with zeros, and put '+' before future years with >4 digits
^      use upper case if possible
#      use opposite case if possible
After any flags comes an optional field width, as a decimal number; then an optional modifier, which is either E to use the locale's alternate representations if available, or O to use the locale's alternate numeric symbols if available.
Convert seconds since the Epoch (1970-01-01 UTC) to a date
$ date --date='@2147483647'
Show the time on the west coast of the US (use tzselect(1) to find TZ)
$ TZ='America/Los_Angeles' date
Show the local time for 9AM next Friday on the west coast of the US
$ date --date='TZ="America/Los_Angeles" 09:00 next Fri'
The --date=STRING is a mostly free format human readable date string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday".  A date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers.  An empty string indicates the beginning of the day.  The date string format is more complex than is easily documented here but is fully described in the info documentation.
Full documentation <https://www.gnu.org/software/coreutils/date> or available locally via: info '(coreutils) date invocation'
UUID(1)                   Universally Unique Identifier                  UUID(1)
OSSP uuid - Universally Unique Identifier Command-Line Tool
OSSP uuid 1.6.2 (04-Jul-2008)
uuid [-v version] [-m] [-n count] [-1] [-F format] [-o filename] [namespace name]
uuid -d [-r] [-o filename] uuid
OSSP uuid is a ISO-C:1999 application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1, ISO/IEC 11578:1996 and IETF RFC-4122 compliant Universally Unique Identifier (UUID). It supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1). Additional API bindings are provided for the languages ISO-C++:1998, Perl:5 and PHP:4/5. Optional backward compatibility exists for the ISO-C DCE-1.1 and Perl Data::UUID APIs.
UUIDs are 128 bit numbers which are intended to have a high likelihood of uniqueness over space and time and are computationally difficult to guess. They are globally unique identifiers which can be locally generated without contacting a global registration authority. UUIDs are intended as unique identifiers for both mass tagging objects with an extremely short lifetime and to reliably identifying very persistent objects across a network.
This is the command line interface (CLI) of OSSP uuid. For a detailed description of UUIDs see the documentation of the application programming interface (API) in uuid(3).
-v version Sets the version of the generated DCE 1.1 variant UUID. Supported are version "1", "3", "4" and "5". The default is "1".
For version 3 and version 5 UUIDs the additional command line arguments namespace and name have to be given. The namespace is either a UUID in string representation or an identifier for internally pre- defined namespace UUIDs (currently known are "ns:DNS", "ns:URL", "ns:OID", and "ns:X500"). The name is a string of arbitrary length.
-m Forces the use of a random multi-cast MAC address when generating version 1 UUIDs. By default the real physical MAC address of the system is used.
-n count Generate count UUIDs instead of just a single one (the default).
-1 If option -n is used with a count greater than 1, then this option can enforce the reset the UUID context for each generated UUID.  This makes no difference for version 3, 4 and 5 UUIDs. But version 1 UUIDs are based on the previously generated UUID which is remembered in the UUID context of the API. Option -1 deletes the remembered UUID on each iteration.
-F format Representation format for importing or exporting an UUID. The following (case insensitive) format identifiers are currently recognized:
BIN (binary representation) This is the raw 128 bit network byte order binary representation of a UUID. Example is the octet stream 0xF8 0x1D 0x4F 0xAE 0x7D 0xEC 0x11 0xD0 0xA7 0x65 0x00 0xA0 0xC9 0x1E 0x6B 0xF6.
STR (string representation) This is the 36 character hexadecimal ASCII string representation of a UUID. Example is the string "f81d4fae-7dec-11d0-a765-00a0c91e6bf6".
SIV (single integer value representation) This is the maximum 39 character long single integer value representation of a UUID. Example is the string "329800735698586629295641978511506172918".
-o filename Write output to filename instead of to stdout.
-d Decode a given UUID (given as a command line argument or if the command line argument is "-" the UUID is read from stdin) and dump textual information about the UUID.
# generate DCE 1.1 v1 UUID (time and node based) $ uuid -v1 01c47915-4777-11d8-bc70-0090272ff725
# decode and dump DCE 1.1 v1 UUID (time and node based) $ uuid -d 01c47915-4777-11d8-bc70-0090272ff725 encode: STR:     01c47915-4777-11d8-bc70-0090272ff725 SIV:     2349374037528578887923094374772111141 decode: variant: DCE 1.1, ISO/IEC 11578:1996 version: 1 (time and node based) content: time:  2004-01-15 16:22:26.376322.1 UTC clock: 15472 (usually random) node:  00:90:27:2f:f7:25 (global unicast)
# generate DCE 1.1 v3 UUID (name based) $ uuid -v3 ns:URL http://www.ossp.org/ 02d9e6d5-9467-382e-8f9b-9300a64ac3cd
# decode and dump DCE 1.1 v3 UUID (name based) $ uuid -d 02d9e6d5-9467-382e-8f9b-9300a64ac3cd encode: STR:     02d9e6d5-9467-382e-8f9b-9300a64ac3cd SIV:     3789866285607910888100818383505376205 decode: variant: DCE 1.1, ISO/IEC 11578:1996 version: 3 (name based, MD5) content: 02:D9:E6:D5:94:67:08:2E:0F:9B:93:00:A6:4A:C3:CD (not decipherable: MD5 message digest only)
# generate DCE 1.1 v4 UUID 4 (random data based) $ uuid -v4 eb424026-6f54-4ef8-a4d0-bb658a1fc6cf
# decode and dump DCE 1.1 v4 UUID 4 (random data based) $ uuid -d eb424026-6f54-4ef8-a4d0-bb658a1fc6cf encode: STR:     eb424026-6f54-4ef8-a4d0-bb658a1fc6cf SIV:     312712571721458096795100956955942831823 decode: variant: DCE 1.1, ISO/IEC 11578:1996 version: 4 (random data based) content: EB:42:40:26:6F:54:0E:F8:24:D0:BB:65:8A:1F:C6:CF (no semantics: random data only)
uuid(3), OSSP::uuid(3).
GIT-RELEASE(1)                     Git Extras                     GIT-RELEASE(1)
git-release - Commit, tag and push changes to the repository
git-release [<tagname> | --semver <name>] [-r <remote>] [-m <commit info>] [--no-empty-commit] [-c] [[--] <hook arguments...>]
Commits changes with message "Release <tagname>" or custom commit information, tags with the given <tagname> and pushes the branch / tags.
This command always creates a release commit, which could be empty if nothing changed. It works like git merge --no-ff. If you don´t like the behavior, you could add --no-empty-commit to skip it.
Optionally it generates a changelog (see git-changelog) and a remote can be defined. The order of first -c or -r does not matter.
If .git/hook/pre-release or .git/hook/post-release exist, they will be triggered with tagname and extra hook arguments before/after the release.
--semver <name>
If the latest tag in your repo matches the semver format requirement, you could increase part of it as the new release tag with this option. The name must be one of the major, minor, patch. For example, assumed the latest tag is 4.4.0, with git release --semver minor you will make a new release with tag 4.5.0.
<tagname>
The name of the newly created tag. Also used in tag comment.
-r <remote>
The "remote" repository that is destination of a push operation: it is passed to git push.
-m <commit info>
use the custom commit information instead of the default message "Release <tagname>" .
--no-empty-commit
Avoid creating empty commit if nothing could be committed.
Generates or populates the changelog with all commit message since the last tag. For more info see git-changelog..
[--] hook arguments...
The arguments listed after "--" separator will be passed to pre/post-release hook following the tagname.
•   Release commit with the given <tagname>.
$ git release 0.1.0
•   Release commit with the given <tagname> and custom commit message.
$ git release 0.1.0 -m "+ powerful feature added."
•   Release commit with the given <tagname> and push to specific remote.
$ git release 0.1.0 -r github
•   Release commit with the given <tagname> and populate changelog.
$ git release 0.1.0 -c
•   Release commit with the given <tagname>, populate changelog, and push to specific remote.
$ git release 0.1.0 -r github -c
•   Release commit with the given <tagname>, pass <tagname> and extra argument to release hook, populate changelog, and push to specific remote.
$ git release 0.1.0 -r github -c -- --signature-required
Written by Tj Holowaychuk <tj@vision-media.ca> Extended by David Hartmann <dh@tsl.io>
UNSET(1P)                   POSIX Programmer's Manual                  UNSET(1P)
unset — unset values and attributes of variables and functions
unset [-fv] name...
Each variable or function specified by name shall be unset.
If -v is specified, name refers to a variable name and the shell shall unset it and remove it from the environment. Read-only variables cannot be unset.
If -f is specified, name refers to a function and the shell shall unset the function definition.
If neither -f nor -v is specified, name refers to a variable; if a variable by that name does not exist, it is unspecified whether a function by that name, if any, shall be unset.
Unsetting a variable or function that was not previously set shall not be considered an error and does not cause the shell to abort.
The unset special built-in shall support the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.
VARIABLE=
is not equivalent to an unset of VARIABLE; in the example, VARIABLE is set to "".  Also, the variables that can be unset should not be misinterpreted to include the special parameters (see Section 2.5.2, Special Parameters).
0    All name operands were successfully unset.
>0    At least one name could not be unset.
Unset VISUAL variable:
unset -v VISUAL
Unset the functions foo and bar:
unset -f foo bar
Consideration was given to omitting the -f option in favor of an unfunction utility, but the standard developers decided to retain historical practice.
The -v option was introduced because System V historically used one name space for both variables and functions. When unset is used without options, System V historically unset either a function or a variable, and there was no confusion about which one was intended.  A portable POSIX application can use unset without an option to unset a variable, but not a function; the -f option must be used.
The Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines
ZRAMCTL(8)                    System Administration                   ZRAMCTL(8)
zramctl - set up and control zram devices
Get info: zramctl [options]
Reset zram: zramctl -r zramdev...
Print name of first unused zram device: zramctl -f
Set up a zram device: zramctl [-f | zramdev] [-s size] [-t number] [-a algorithm]
zramctl is used to quickly set up zram device parameters, to reset zram devices, and to query the status of used zram devices.
If no option is given, all non-zero size zram devices are shown.
Note that zramdev node specified on command line has to already exist. The command zramctl creates a new /dev/zram<N> nodes only when --find option specified. Itâ€™s possible (and common) that after system boot /dev/zram<N> nodes are not created yet.
-a, --algorithm lzo|lz4|lz4hc|deflate|842 Set the compression algorithm to be used for compressing data in the zram device.
-f, --find Find the first unused zram device. If a --size argument is present, then initialize the device.
-n, --noheadings Do not print a header line in status output.
-o, --output list Define the status output columns to be used. If no output arrangement is specified, then a default set is used. Use --help to get a list of all supported columns.
--raw Use the raw format for status output.
-r, --reset Reset the options of the specified zram device(s). Zram device settings can be changed only after a reset.
-s, --size size Create a zram device of the specified size. Zram devices are aligned to memory pages; when the requested size is not a multiple of the page size, it will be rounded up to the next multiple. When not otherwise specified, the unit of the size parameter is bytes.
The size argument may be followed by the multiplicative suffixes KiB (=1024), MiB (=1024*1024), and so on for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g., "K" has the same meaning as "KiB") or the suffixes KB (=1000), MB (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB.
-t, --streams number Set the maximum number of compression streams that can be used for the device. The default is use all CPUs and one stream for kernels older than 4.6.
zramctl returns 0 on success, nonzero on failure.
/dev/zram[0..N] zram block devices
The following commands set up a zram device with a size of one gigabyte and use it as swap device.
# zramctl --find --size 1024M /dev/zram0 # mkswap /dev/zram0 # swapon /dev/zram0 ... # swapoff /dev/zram0 # zramctl --reset /dev/zram0
Timofey Titovets <nefelim4ag@gmail.com>, Karel Zak <kzak@redhat.com>
Linux kernel documentation <http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/blockdev/zram.rst>
The zramctl command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
LINKCHECKER(1)                     LinkChecker                    LINKCHECKER(1)
linkchecker - command line client to check HTML documents and websites for broken links
linkchecker [options] [file-or-url]...
LinkChecker features
• recursive and multithreaded checking
• output in colored or normal text, HTML, SQL, CSV, XML or a sitemap graph in different formats
• support for HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet and local file links
• restriction of link checking with URL filters
• proxy support
• username/password authorization for HTTP, FTP and Telnet
• support for robots.txt exclusion protocol
• support for Cookies
• support for HTML5
• HTML and CSS syntax check
• Antivirus check
• a command line and web interface
The most common use checks the given domain recursively:
$ linkchecker http://www.example.com/
Beware that this checks the whole site which can have thousands of URLs. Use the -r option to restrict the recursion depth.
Don't check URLs with /secret in its name. All other links are checked as usual:
$ linkchecker --ignore-url=/secret mysite.example.com
Checking a local HTML file on Unix:
$ linkchecker ../bla.html
Checking a local HTML file on Windows:
C:\> linkchecker c:empest.html
You can skip the http:// url part if the domain starts with www.:
$ linkchecker www.example.com
You can skip the ftp:// url part if the domain starts with ftp.:
$ linkchecker -r0 ftp.example.com
Generate a sitemap graph and convert it with the graphviz dot utility:
$ linkchecker -odot -v www.example.com | dot -Tps > sitemap.ps
General options -f FILENAME, --config=FILENAME Use FILENAME as configuration file. By default LinkChecker uses ~/.linkchecker/linkcheckerrc.
-h, --help Help me! Print usage information for this program.
--stdin Read list of white-space separated URLs to check from stdin.
-t NUMBER, --threads=NUMBER Generate no more than the given number of threads. Default number of threads is 10. To disable threading specify a non-positive number.
-V, --version Print version and exit.
--list-plugins Print available check plugins and exit.
Output options -D STRING, --debug=STRING Print debugging output for the given logger. Available loggers are cmdline, checking, cache, dns, plugin and all. Specifying all is an alias for specifying all available loggers. The option can be given multiple times to debug with more than one logger. For accurate results, threading will be disabled during debug runs.
-F TYPE[/ENCODING][/FILENAME], --file-output=TYPE[/ENCODING][/FILENAME] Output to a file linkchecker-out.TYPE, $HOME/.linkchecker/failures for failures output, or FILENAME if specified. The ENCODING specifies the output encoding, the default is that of your locale. Valid encodings are listed at https://docs.python.org/library/codecs.html#standard-encodings. The FILENAME and ENCODING parts of the none output type will be ignored, else if the file already exists, it will be overwritten. You can specify this option more than once. Valid file output TYPEs are text, html, sql, csv, gml, dot, xml, sitemap, none or failures. Default is no file output.  The various output types are documented below. Note that you can suppress all console output with the option -o none.
--no-status Do not print check status messages.
--no-warnings Don't log warnings. Default is to log warnings.
-o TYPE[/ENCODING], --output=TYPE[/ENCODING] Specify output type as text, html, sql, csv, gml, dot, xml, sitemap, none or failures.  Default type is text. The various output types are documented below.  The ENCODING specifies the output encoding, the default is that of your locale. Valid encodings are listed at https://docs.python.org/library/codecs.html#standard-encodings.
-q, --quiet Quiet operation, an alias for -o none. This is only useful with -F.
-v, --verbose Log all checked URLs. Default is to log only errors and warnings.
-W REGEX, --warning-regex=REGEX Define a regular expression which prints a warning if it matches any content of the checked link. This applies only to valid pages, so we can get their content.  Use this to check for pages that contain some form of error, for example "This page has moved" or "Oracle Application error".  Note that multiple values can be combined in the regular expression, for example "(This page has moved|Oracle Application error)".  See section REGULAR EXPRESSIONS for more info.
Checking options --cookiefile=FILENAME Read a file with initial cookie data. The cookie data format is explained below.
--check-extern Check external URLs.
--ignore-url=REGEX URLs matching the given regular expression will only be syntax checked.  This option can be given multiple times.  See section REGULAR EXPRESSIONS for more info.
-N STRING, --nntp-server=STRING Specify an NNTP server for news: links. Default is the environment variable NNTP_SERVER. If no host is given, only the syntax of the link is checked.
--no-follow-url=REGEX Check but do not recurse into URLs matching the given regular expression.  This option can be given multiple times.  See section REGULAR EXPRESSIONS for more info.
--no-robots Check URLs regardless of any robots.txt files.
-p, --password Read a password from console and use it for HTTP and FTP authorization. For FTP the default password is anonymous@. For HTTP there is no default password. See also -u.
-r NUMBER, --recursion-level=NUMBER Check recursively all links up to given depth. A negative depth will enable infinite recursion. Default depth is infinite.
--timeout=NUMBER Set the timeout for connection attempts in seconds. The default timeout is 60 seconds.
-u STRING, --user=STRING Try the given username for HTTP and FTP authorization. For FTP the default username is anonymous. For HTTP there is no default username. See also -p.
--user-agent=STRING Specify the User-Agent string to send to the HTTP server, for example "Mozilla/4.0". The default is "LinkChecker/X.Y" where X.Y is the current version of LinkChecker.
Configuration files can specify all options above. They can also specify some options that cannot be set on the command line. See linkcheckerrc(5) for more info.
Note that by default only errors and warnings are logged. You should use the option --verbose to get the complete URL list, especially when outputting a sitemap graph format.
text   Standard text logger, logging URLs in keyword: argument fashion.
html   Log URLs in keyword: argument fashion, formatted as HTML. Additionally has links to the referenced pages. Invalid URLs have HTML and CSS syntax check links appended.
csv    Log check result in CSV format with one URL per line.
gml    Log parent-child relations between linked URLs as a GML sitemap graph.
dot    Log parent-child relations between linked URLs as a DOT sitemap graph.
gxml   Log check result as a GraphXML sitemap graph.
xml    Log check result as machine-readable XML.
sitemap Log check result as an XML sitemap whose protocol is documented at https://www.sitemaps.org/protocol.html.
sql    Log check result as SQL script with INSERT commands. An example script to create the initial SQL table is included as create.sql.
failures Suitable for cron jobs. Logs the check result into a file ~/.linkchecker/failures which only contains entries with invalid URLs and the number of times they have failed.