SC2267 – ShellCheck Wiki

See this page on GitHub


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


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.



ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.