2012-05-18 12 views

Odpowiedz

39

Można po prostu zrobić

cd - 

, który zabierze Cię z powrotem do poprzedniego położenia.

Niektóre muszle pozwalają użyć polecenia pushdir/popdir, check out this site. Możesz również znaleźć ten SO question przydatne.

+0

dzięki. The 'pushd' i' popd' zadziała! :) Ale czy istnieje sposób na wyłączenie echa? (Tj., Niech te komendy wykonać „quiety”?) –

+2

@OneTwoThree nie wiem jak Zwykle używam 'cd -'. Możesz jednak zrobić coś takiego jak 'pushd>/dev/null' jako obejście. Jeśli umieścisz to w skrypcie, może być opcja wyciszenia powłoki. – Levon

+0

Rozumiem. Dziękuję Ci!!! –

1

Można echo PWD do zmiennej i cd z powrotem do tej zmiennej. Może być ciszej.

+0

Tak, to dobry pomysł! –

+0

Czy to nie '$ OLDPWD'? – IsaacS

3

Jeśli używasz wewnątrz skryptu, można również uruchomić część skryptu wewnątrz sub-procesu, który będzie miał prywatną wartość $ PWD.

# do some work in the base directory, eg. echoing $PWD 
echo $PWD 

# Run some other command inside subshell 
(cd ./new_directory; echo $PWD) 

# You are back in the original directory here: 
echo $PWD 

ten ma swoje wady i zalety ... robi izolować katalog ładnie, ale tarła podprocesów może być drogie, jeśli robisz to dużo. (EDYCJA: jak @Norman Gray wskazuje poniżej, kara za wykonanie tarła pod-procesu prawdopodobnie nie jest bardzo droga w stosunku do tego, co dzieje się w pozostałej części skryptu)

Ze względu na łatwość konserwacji, zwykle używam tego podejścia, chyba że mogę udowodnić, że skrypt działa powoli z tego powodu.

+0

+1 co do zasady, ale czy miałeś/miałaś/aś pewien sukces? Ponieważ każde polecenie, które nie jest wbudowane w powłokę, rozwiąże problem, wątpię, aby rozwidlenie podpórki mogło spowodować znaczące obniżenie wydajności. –

0

Inną alternatywą jest mały zestaw funkcji, które można dodać do .bashrc, które pozwalają, aby przejść do nazwanych katalogach:

# cd /some/horribly/long/path 
# save spud 
# cd /some/other/horrible/path 
# save green 
... 
# go spud 
/some/horribly/long/path 

Jest to udokumentowane w A directory navigation productivity tool, ale w zasadzie polega na zapisaniu wyjście " pwd "do wymienionych mnemoniki (" spud "i" green ") w powyższym przypadku, a następnie cd'ing do zawartości plików.

Powiązane problemy