Voglio personalizzare la funzionalità del cd
comando 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 cd
viene interpretata come la funzione stessa e non cd
incorporata.
Come posso fare riferimento al cd
built-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.
pushd
non supporta -P
. Ma hai ragione, come mostrato nella domanda, function cd
sembra 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 ../
)?