/ / usando xargs per passare una variabile al comando alias - linux, bash, alias, xargs

usando xargs per passare una variabile alias al comando - linux, bash, alias, xargs

Sto cercando di scrivere un liner che crea un alias "cd =" cd dir_name "" che cambierà la directory in quel nome_dir

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

ma ottengo:

xargs: alias: No such file or directory

è che l'alias non può essere giocato con xargs o non sto usando xargs correttamente?

risposte:

2 per risposta № 1

alias è una shell integrata. xargs ha bisogno di un comando esterno per l'esecuzione. Normalmente, puoi lanciare una nuova shell xargs per interpretare i builtin o le parole chiave:

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

ma è inutile in questo caso, poiché l'alias vivrebbe solo nel guscio da cui fuggi xargs, non in quello attuale.

Inoltre, l'alias non può essere nominato /home/user. Forse intendevi

... alias cd="cd {}"

Uso pushd e popd per ricordare la directory corrente e tornare più tardi.