0
我想要编写创建一个别名“CD =‘CD DIR_NAME’”这将改变目录到DIR_NAME使用xargs的传递给alias命令变量
pwd | xargs -i alias cd{}='cd $PWD'
,但我一个衬垫得到:
xargs: alias: No such file or directory
是别名不能与xargs一起玩还是我没有正确使用xargs?
我想要编写创建一个别名“CD =‘CD DIR_NAME’”这将改变目录到DIR_NAME使用xargs的传递给alias命令变量
pwd | xargs -i alias cd{}='cd $PWD'
,但我一个衬垫得到:
xargs: alias: No such file or directory
是别名不能与xargs一起玩还是我没有正确使用xargs?
alias
是一个shell内建。 xargs
需要外部命令才能运行。通常情况下,你可以在xargs
运行新的外壳解释建宏或关键字:
pwd | xargs -i bash -c 'alias cd{}="cd $PWD"'
,但它也没用在这种情况下,作为别名只会活在你从xargs
运行shell,而不是在当前。
此外,别名不能被命名为/home/user
。也许你的意思
... alias cd='cd {}'
使用pushd
和popd
记住当前目录,稍后返回。
'xargs'试图执行_command_'alias',但'alias'是_builtin_。 –
我很困惑,你是否试图别名'cd'来总是cd到当前的工作目录?你能用伪代码解释这个别名是什么意思吗? – njachowski
'xargs'作为一个独立的过程运行;它运行的shell也是一个独立的进程。即使你修改了调用(例如'pwd | xargs -i bash -c“alias cd {} ='cd $ PWD'”),也没有办法,那么结果将成为当前shell的别名。你的符号看起来好像它可能试图创建'alias cd/home/you ='cd/home/you''这也是可疑的。你应该使用类似于:'alias cd $(basename $ PWD)=“cd $ PWD”'。 –