Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.

xe: simple xargs and apply replacement

xe is a new tool for constructing command lines from file listings or arguments, which includes the best features of xargs(1) and apply(1).

xe means "execute for every ...".


Over xargs:

  • Sane defaults (behaves like xargs -d'\n' -I{} -n1 -r).
  • No weird parsing, arguments are separated linewise or by NUL byte.
  • Can also take arguments from command-line.
  • No shell involved unless -s is used.
  • {} replacing possible with multiple arguments.
  • Support for patterns to run different commands depending on the argument.

Over apply:

  • Parallel mode.
  • Sane argument splitting.
  • Can use shell-syntax instead of escape characters.

Man page


Use make all to build, make install to install relative to PREFIX (/usr/local by default). The DESTDIR convention is respected. You can also just copy the binary into your PATH.


xe is in the public domain.

To the extent possible under law, Leah Neukirchen has waived all copyright and related or neighboring rights to this work.