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」'。 –