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
Normally options and operands can appear in any order, and programs act
as if all the options appear before any operands. For example,
‘diff lao tzu -C 2’ acts like ‘diff -C 2 lao tzu’, since
‘2’ is an option-argument of -C. However, if the
POSIXLY_CORRECT environment variable is set, options must appear
before operands, unless otherwise specified for a particular command.
Newer versions of POSIX are occasionally incompatible with older versions. For example, older versions of POSIX allowed the command ‘diff -c -10’ to have the same meaning as ‘diff -C 10’, but POSIX 1003.1-2001 ‘diff’ no longer allows digit-string options like -10.
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. Two values are currently
_POSIX2_VERSION: ‘199209’ stands for
POSIX 1003.2-1992, and ‘200112’ stands for POSIX
1003.1-2001. For example, if you are running older software that
assumes an older version of POSIX and uses ‘diff -c -10’,
you can work around the compatibility problems by setting
‘_POSIX2_VERSION=199209’ in your environment.