Why is the xargs -i option deprecated

historyoptionsxargs

I was reading the Linux man page for xargs recently, and it appears that the -i option is deprecated. To quote from the documentation:

    -i[replace-str], --replace[=replace-str]
          This option is a synonym for -Ireplace-str if replace-str is
          specified.  If the replace-str argument is missing, the effect
          is the same as -I{}.  This option is deprecated; use -I
          instead.

Just curious, why is it deprecated? What's the reason to use the more verbose -I{} syntax instead?

Best Answer

muru is right, if you check findutil changelog @line 1645

  • Major changes in release 4.2.9, 2004-12-05

xargs now supports the POSIX options -E, -I and -L. These are synonyms for the existing options -e, -i and -l, but the latter three are now deprecated.

There's an explanation in the man page too, see the -l option:

The -l option is deprecated since the POSIX standard specifies -L instead.

and also further down:

 The -l and -i options appear in the 1997 version of the POSIX
 standard, but do not appear in the 2004 version of the standard.
 Therefore you should use -L and -I instead, respectively.