Voglio personalizzare la funzionalità del cdcomando secondo le mie esigenze.
Ho definito la seguente funzione:
function cd () { cd "$@" && pushd "$@"; }
L'intento di questa funzione è di spingere automaticamente la directory nello stack in modo che mi risparmi lo sforzo di digitare manualmente pushd .ogni volta.
Tuttavia, la funzione sopra è una funzione infinitamente ricorsiva, poiché la chiamata a cdviene interpretata come la funzione stessa e non cdincorporata.
Come posso fare riferimento al cdbuilt-in in questa funzione?
So che è possibile sfuggire agli alias usando \. Qual è il modo per sfuggire alle funzioni o fare riferimento agli incorporati in un modo più esplicito?
Nota: non voglio rinominare la mia funzione con nient'altro.
pushdnon supporta -P. Ma hai ragione, come mostrato nella domanda, function cdsembra un po 'sbagliato, poiché ha cambiato directory due volte.
alias cd=pushd? Cosa ti aspetti che accada quando esegui il cd su qualcosa che non è un percorso assoluto (ad es.cd ../)?