Chcę dostosować funkcjonalność cd
polecenia zgodnie z moimi potrzebami.
Zdefiniowałem następującą funkcję -
function cd () { cd "$@" && pushd "$@"; }
Celem tej funkcji jest automatyczne wypychanie katalogu na stos, dzięki czemu oszczędzam wysiłku, aby za pushd .
każdym razem ręcznie pisać .
Jednak powyższa funkcja jest funkcją nieskończenie rekurencyjną, ponieważ wywołanie cd
to interpretowane jest jako sama funkcja, a nie cd
wbudowana.
Jak odwołać się do cd
wbudowanej funkcji?
Wiem, że za pomocą aliasów można uciec \
. W jaki sposób można uciec od funkcji lub odwoływać się do wbudowanych funkcji w bardziej wyraźny sposób?
Uwaga: nie chcę zmieniać nazwy mojej funkcji na nic innego.
pushd
nie obsługuje -P
. Ale masz rację, jak pokazano w pytaniu, function cd
wygląda to nieco źle, ponieważ dwukrotnie zmienił katalog.
alias cd=pushd
? Czego oczekujesz, gdy wydarzy się cd do czegoś, co nie jest ścieżką absolutną (np.cd ../
)?