I often see xargs -I {}
or xargs -I %
(less). Is there any reason why those two are commonly used? Why is {}
, as longer and more likely to be bad-interpreted, preferred?
2 Answers
{}
is also seen in find
, and python
. %
has a long historical tradition in printf
-family commands in most programming languages, but mostly as a prefix to sequences like %s
or %d
, so it's not the first thought to use it alone.
There is also a simpler reason. The -i
switch that is now deprecated, implied {}
if you didn't specify a different one. It appears that the original developers used this form (quite possibly inspired by find
), and shipped a default setting and a rich series of example uses in tutorials that use {}
. The rest of the users simply propagated this choice.

- 12,502
This answers the question why (kind of):
"{}" is common because xargs stems from the same family as find, and find uses "{}" for exec and exedir.
Why find uses "{}" I don't know, though. :)

- 6,765