Czy jest jakiś sposób na powrót do poprzedniego katalogu roboczego po wykonaniu cd
innego katalogu?
Mój przypadek użycia polega na tym, że przeglądam strukturę katalogów dla projektu Java i oczekuję, że bieżący katalog ma tylko jeden podkatalog. Więc piszę cd
i uderzam Tabi Enterraczej szybko. Jednak Tabzawiodło, jak błędnie oczekiwałem jednego podkatalogu, gdy w rzeczywistości jest ich więcej. Więc teraz właśnie wykonałem cd
i jestem teraz w moim katalogu domowym, zamiast projektu Java. Czy istnieje sposób na „cofnięcie” tego cd
i powrót do katalogu, w którym byłem?
command-line
bash
nickb
źródło
źródło
cd -
jest świetny do cofania się o jeden poziom, ale jeśli chcesz cofnąć się o kilka poziomów, sprawdź ten skrypt:acd_func.sh
Wspaniale.
cd --
na przykład, aby zobaczyć swoją historię icd -3
cofnąć się o 3 poziomy.źródło
Możesz także użyć
pushd
ipopd
wykorzystać stos katalogów :)Kilka informacji tutaj
źródło
Ponadto
cd ..
może zabrać Cię z powrotem do katalogu nadrzędnego katalogu roboczego, a następnie w razie potrzeby komendę można powtarzać, aż dojdziesz do miejsca, w którym chcesz się znaleźć. W rzeczywistości, za każdym razem, gdy jest wywoływane, zabiera cię z powrotem przez drzewo katalogów, które ostatecznie kończyłyby się na/
(katalogu głównym) , gdybyś ciągle powtarzał polecenie.W przeciwieństwie do tego ,
cd -
w rzeczywistości sprawia, że poprzedni katalog roboczy bieżącego katalogu roboczego, (który jest znany jako.
) i które dokładnej lokalizacji w systemie plików można znaleźć wpwd
.Więc zarówno
cd ..
icd -
mogą być przydatne w różnych okolicznościach podczas nawigacji drzewo katalogów, choć nie różnią się w wyżej wymienionych aspektach. Być może najbardziej użytecznym poleceniem po dobrej zabawie z eksperymentowaniem z tymi dwoma poleceniami jestcd
powrót do katalogu domowego.źródło
Najlepszym sposobem na to, aby wrócić, jest
cd -
jednak to , że jeśli chcesz pominąć wiele poziomów na raz, lepiej użyćcd ..
jednego poziomu,cd ../..
dwóch,cd ../../..
trzech i dalej ... fajnym sposobem na to szybko jest to scenariusz:źródło
cd
w skrypcie nie wpływa na powłokę nadrzędną. Aby był przydatny, musisz umieścić to w funkcji powłoki.up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }