Skip to content
Joachim Ansorg edited this page Nov 12, 2021 · 3 revisions

GNU xargs -i is deprecated in favor of -I{}

Problematic code:

# Implicit replacement string
xargs -i ls {}

# Explicit replacement string
xargs -imyfilename ls myfilename

Correct code:

xargs -I {} ls {}

xargs -I filename ls filename

Rationale:

xargs -i is a GNU specific option. It has been deprecated in favor of the POSIX standard option -I.

Note that -i will implicitly use {} as a token if nothing is specified, while -I requires it to be explicit.

Exceptions:

None.

Related resources:

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally