Chcę dostosować funkcjonalność cdpolecenia 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 cdto interpretowane jest jako sama funkcja, a nie cdwbudowana.
Jak odwołać się do cdwbudowanej 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.
pushdnie obsługuje -P. Ale masz rację, jak pokazano w pytaniu, function cdwyglą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 ../)?