I have the following alias in my .aliases:
alias gi grep -i
find -name \*bar\* | xargs gi foo
xargs: gi: No such file or directory
find -name \*bar\* | xargs grep -i foo
Aliases are shell-specific - in this case, most likely bash-specific. To execute an alias, you need to execute bash, but aliases are only loaded for interactive shells (more precisely,
.bashrc will only be read for an interactive shell).
bash -i runs an interactive shell (and sources .bashrc). bash -c cmd runs cmd.
Put them together:
bash -ic cmd runs cmd in an interactive shell, where cmd can be a bash function/alias defined in your
find -name \*bar\* | xargs bash -ic gi foo
should do what you want.
Edit: I see you've tagged the question as "tcsh", so the bash-specific solution is not applicable. With tcsh, you dont need the
-i, as it appears to read .tcshrc unless you give
find -name \*bar\* | xargs tcsh -c gi foo
It worked for my basic testing.