Piszę skrypt, który musi cd
w pewnym miejscu. Czy jest jakikolwiek sposób, aby powrócić do poprzedniej lokalizacji, tj. Lokalizacja przed wykonaniem cd
?wrócić do poprzedniej lokalizacji po komendzie "cd"?
Odpowiedz
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.
Można echo PWD do zmiennej i cd z powrotem do tej zmiennej. Może być ciszej.
Tak, to dobry pomysł! –
Czy to nie '$ OLDPWD'? – IsaacS
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.
+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. –
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.
- 1. Jak "cd" do katalogu po "grep"?
- 2. tcsh - zapisz historię zaraz po komendzie
- 3. zestaw poleceń po komendzie If
- 4. Android wróć do poprzedniej aktywności
- 5. polecenia są ignorowane po komendzie mrówek w pliku wsadowym
- 6. wróć do poprzedniej strony
- 7. Jak wrócić do strony odsyłający w CakePHP po zalogowaniu
- 8. F12 Przeskok do metody -> powrót do poprzedniej metody po wykonaniu skoku?
- 9. Plik audio odtwarzany automatycznie po powrocie do poprzedniej strony
- 10. Przycisk, aby wrócić do MainActivity
- 11. Symfony3 Przechowywanie lokalizacji po zalogowaniu
- 12. Zaokrąglij datetime do poprzedniej godziny
- 13. Jak przejść do poprzedniej lokalizacji w kodzie Visual Studio (kod VS)
- 14. Interpolacja zmiennej perl w komendzie powłoki
- 15. jquery animować, ale potem wrócić do normalnego
- 16. Jak wrócić HTTP 204 do kontrolera Railsów
- 17. XMLDocument -> Byte [] ... jak wrócić do XMLDocument?
- 18. Jak wrócić do Xcode 6.4, Carthage
- 19. cd Terminal w danym katalogu po uruchomieniu skryptu Python?
- 20. Przycisk Wstecz Androida nie powraca do poprzedniej aktywności
- 21. Vim: `cd` do ścieżki przechowywanej w zmiennej
- 22. Jak wrócić do wielu języków w Django w czasie wykonywania?
- 23. Dostosowywanie polecenia cd
- 24. C# ASP.NET MVC Powróć do poprzedniej strony
- 25. ucieczka w komendzie vim
- 26. powrócić do poprzedniej konfiguracji z wiersza poleceń?
- 27. Identyfikowanie dysków CD
- 28. jak wrócić do poprzedniego miejsca edycji
- 29. Identyfikacja komórki po pobraniu lokalizacji w UICollectionView
- 30. uruchamiania z dysku/CD/USB
dzięki. The 'pushd' i' popd' zadziała! :) Ale czy istnieje sposób na wyłączenie echa? (Tj., Niech te komendy wykonać „quiety”?) –
@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
Rozumiem. Dziękuję Ci!!! –