使用xargs将变量传递给alias命令

时间:2016-01-14 17:02:46

标签: linux bash alias xargs

我正在尝试编写一个创建别名'cd =“cd dir_name”'的内衬,它会将目录更改为该dir_name

pwd | xargs -i alias cd{}='cd $PWD'

但我明白了:

xargs: alias: No such file or directory

是不能用xargs播放别名,还是我没有正确使用xargs?

1 个答案:

答案 0 :(得分:2)

alias是内置的shell。 xargs需要外部命令才能运行。通常,您可以在xargs中运行新shell来解释内置函数或关键字:

pwd | xargs -i bash -c 'alias cd{}="cd $PWD"'

但在这种情况下它没用,因为别名只存在于从xargs运行的shell中,而不是在当前的shell中。

此外,别名不能命名为/home/user。也许你的意思是

... alias cd='cd {}'

使用pushdpopd记住当前目录并稍后返回。