Prawdopodobnie ponieważ stare powłoki nie wyświetlały nazwy bieżącego katalogu w pytaniu, pomocne było zobaczenie nazwy katalogu podczas pisania cd -. Na przykład, kiedy piszesz cd /usr/local, wiesz, że jesteś /usr/loal, ale kiedy piszesz cd -, nie zawsze pamiętasz, z którego katalogu pochodzisz. Dzięki temu nie musisz pisać cd -; pwd. Ale to wszystko spekulacje.
Pozostałe odpowiedzi są zdecydowanie kompletne w sensie bezpośredniej odpowiedzi. cd -i cd $OLDPWDzdecydowanie są to główne wybory. Jednak często stwierdzam, że wchodzenie w przepływ pracy pushdi popddziała lepiej.
Krótko mówiąc, jeśli przenosisz się do katalogu z ostatecznym zamiarem powrotu do miejsca, w którym zacząłeś, użyj pushd/ popd.
Rozszerzony przykład
Główną różnicę łatwo zilustrować na przykładzie.
$ cd dir1
$ pushd dir2
W tym momencie masz stos katalogów, który jest dir2, dir1. Uruchomienie pushdbez argumentów spowoduje powrót dir1do stosu teraz jako dir1, dir2. popdzrobiłby to samo, ale zostawiłby ci pusty stos katalogów. Nie różni się to zbytnio od tego, jak wyglądałby cd -przepływ pracy.
Jednak teraz możesz teraz wielokrotnie zmieniać katalogi i wracać do dir1. Na przykład,
$ cd dir1
$ pushd dir2
$ cd dir3
Jeśli pobiegniesz popdw tym momencie, wrócisz do dir1.
Na pewno. Prawie podałem duży przykład, który obejmował sprawdzenie stosu dirs -v, ale dla mnie rzeczywistość jest taka, że często wystarczy prosty przypadek. (Lub, co gorsza, popełniam błąd, próbując push +2lub podobnie). Pomyślałem też, że dziecko kroczy, aby nakłonić kogoś do wypróbowania pracy. :)
robi to samo co cd -(z obecnie akceptowanej odpowiedzi) bez irytującego echa katalogu i jest łatwiejszy do wpisania niż cd "$OLDPWD"lub cd - > /dev/null.
Echo pokazuje nowy katalog, a nie poprzedni. I przydałoby mi się to, żebym wiedział, gdzie jestem teraz, zwłaszcza jeśli jestem w powłoce, która wyświetla tylko bieżącą nazwę katalogu (lub w ogóle nic) w wierszu poleceń, i jestem zbyt niezadowolony, aby zmienić monit o wyświetlenie pełnej ścieżki. Oczywiście, jeśli twój monit pokazuje już pełną ścieżkę, echo byłoby zbędne i irytujące. W takim przypadku myślę, że możesz spróbować zrobić alias -- -='cd "$OLDPWD"'to, używając -(1 znak) zamiast cd ~-(5 znaków). :)
Źródło i wyjaśnienie: unix.stackexchange.com/a/330885/38213 Spoilery, - jest operandem, a ~ to aliasy ścieżek. Tak cd ~-/..działa, ale cd -/..nie działa!
Możesz „zdefiniować klucz” dla „cd -”, edytując plik „~ / .bashrc” i dołączając alias polecenia. Na przykład możesz dodać „cdc”, aby uzyskać „cd -”, co zapewni krótszy sposób na przejście do ostatniego katalogu poprzez dodanie:
alias cdc='cd -'
W ten sposób po prostu napiszesz „cdc” i umieści cię w ostatnim katalogu roboczym.
I mylę cię bez końca, gdy używasz systemu, w którym ten alias nie istnieje. Oszczędza to wpisywania jednej postaci co jakiś czas. Po co w ogóle zawracać sobie głowę?
„W terminalu, jak mogę zdefiniować klucz, aby przejść do poprzedniego katalogu” Nigdy się nie mylę. To tylko skrót, gdy jesteś w innym systemie, po prostu użyj długiej ręki.
@ Atari911 świetne pytanie! oto odpowiedź: stackoverflow.com/questions/4200800 Oto co zrobiłem (związany F12): bind '"\e[24~":"\C-k \C-ucd -\n"'(lub bardziej korzystnie przenieś go do inputrcpliku, jak wspomniano w odpowiedzi).
cd ..przechodzi do poprzedniego folderu w drzewie folderu. cd -idzie do folderu, który był wcześniej. To polecenie nie działało na niektórych dystrybucjach (ubuntu 16.04), działa w debian 9.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.