Псевдонимы зависят от оболочки - в этом случае, скорее всего, от bash. Чтобы выполнить псевдоним, вам нужно выполнить bash, но псевдонимы загружаются только для интерактивных оболочек (точнее, .bashrc
будет считываться только для интерактивной оболочки).
bash -i запускает интерактивную оболочку (и исходники .bashrc).
bash -c cmd работает cmd .
Соберите их вместе:
bash -ic cmd запускает cmd в интерактивной оболочке, где cmd может быть функцией / псевдонимом bash, определенной в .bashrc
.
find -name \*bar\* | xargs bash -ic gi foo
должен делать то, что вы хотите.
Редактировать: Я вижу, вы пометили вопрос как "tcsh", поэтому решение, касающееся Bash, неприменимо. С tcsh вам не нужен -i
, так как кажется, что он читает .tcshrc, если вы не дадите -f
.
Попробуйте это:
find -name \*bar\* | xargs tcsh -c gi foo
Это сработало для моего базового тестирования.