In a few cases, the GNU utilities’ default behavior is
incompatible with the POSIX standard. To suppress these
incompatibilities, define the
variable. Unless you are checking for POSIX conformance, you
probably do not need to define
Newer versions of POSIX are occasionally incompatible with older versions. For example, older versions of POSIX required the command ‘sort +1’ to sort based on the second and succeeding fields in each input line, but in POSIX 1003.1-2001 the same command is required to sort the file named +1, and you must instead use the command ‘sort -k 2’ to get the field-based sort. To complicate things further, POSIX 1003.1-2008 allows an implementation to have either the old or the new behavior.
The GNU utilities normally conform to the version of POSIX
that is standard for your system. To cause them to conform to a
different version of POSIX, define the
environment variable to a value of the form yyyymm specifying
the year and month the standard was adopted. Three values are currently
_POSIX2_VERSION: ‘199209’ stands for
POSIX 1003.2-1992, ‘200112’ stands for POSIX
1003.1-2001, and ‘200809’ stands for POSIX 1003.1-2008.
For example, if you have a POSIX 1003.1-2001 system but are running software
containing traditional usage like ‘sort +1’ or ‘tail +10’,
you can work around the compatibility problems by setting
‘_POSIX2_VERSION=200809’ in your environment.