Czy dzięki bash istnieje sposób na wypchnięcie i usunięcie bieżącego katalogu roboczego? Próbowałem pisać, bash;cd dir; ./dostuff;exit;
ale bieżący katalog jest teraz dir
.
66
Jest pushd
ipopd
Bash zachowa historię odwiedzanych katalogów, po prostu musisz zapytać. Bash przechowuje historię w stosie i używa poleceń pushd i popd do zarządzania stosem.
Przykład:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.
Wywołanie
bash
uruchamia nową podpowłokę, która ma własne dane wejściowe; żadne z pozostałych poleceń nie uruchomi się, dopóki nie zakończy działania. Otaczanie poleceń uruchamianych za pomocą parens również uruchomi nową podpowłokę, ale uruchomi w niej polecenia.źródło
Jeśli nie potrzebujesz wielu poziomów historii katalogów, możesz także:
W porównaniu do
pushd
/popd
ma to tę wadę, że jeślicd foo
zawiedzie, trafisz do niewłaściwego katalogu zcd -
.(Prawdopodobnie
cd -
jest to bardziej przydatne poza skryptami. „Wróćmy tam, gdzie właśnie byłem”.)źródło
Używam aliasu do śledzenia zmian w moich katalogach, więc do „cd” gdzieś mogę wrócić do miejsca, w którym korzystałem z „cd.”, Lub cofnąć dwa, używając „cd ..” itp .;
źródło
..cd
wystarczająco solidny? wygląda na to, że usuwa tylko 10 ostatnich przedmiotów ze stosu.