Sto scrivendo uno script di shell che ha bisogno di cd
in qualche luogo. C'è un modo per tornare alla posizione precedente, ovvero, la posizione prima dello cd
è stata eseguita?tornare alla posizione precedente dopo il comando 'cd'?
risposta
Si può semplicemente fare
cd -
che vi porterà indietro alla vostra posizione precedente.
Alcune shell consentono di utilizzare i comandi pushdir/popdir, check out this site. Puoi anche trovare utile questo SO question.
È possibile eseguire il richiamo di PWD in una variabile e il cd torna a quella variabile. Potrebbe essere più tranquillo.
Sì, è una buona idea! –
Non è questo '$ OLDPWD'? – IsaacS
Se si sta eseguendo all'interno di uno script, è anche possibile eseguire parte dello script all'interno di un processo secondario, che avrà un valore privato di $ 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
Questo ha i suoi vantaggi e svantaggi ... lo fa isolare la directory bene, ma la deposizione delle uova sotto-processi può essere costoso se si sta facendo un sacco. (EDIT: come indicato da @Norman Gray, la penalizzazione delle prestazioni di generazione del processo secondario probabilmente non è molto costosa rispetto a qualsiasi altra cosa accada nel resto dello script)
Per motivi di manutenibilità, I di solito uso questo approccio a meno che non riesca a dimostrare che lo script sta funzionando lentamente a causa di esso.
+1 in linea di principio, ma hai _ misurato_ un successo in termini di prestazioni? Poiché ogni comando che non è un built-in di shell farà una fork, dubito che la fork di una subshell possa verosimilmente comportare una significativa penalizzazione delle prestazioni. –
Un'altra alternativa è un piccolo insieme di funzioni che è possibile aggiungere al vostro .bashrc che ti permettono di andare alle directory di nome:
# cd /some/horribly/long/path
# save spud
# cd /some/other/horrible/path
# save green
...
# go spud
/some/horribly/long/path
Questo è documentato in A directory navigation productivity tool, ma fondamentalmente coinvolge salvare l'uscita di " pwd "nel nome mnemonico (" spud "e" green ") nel caso precedente, e quindi cd'ing al contenuto dei file.
- 1. django, tornare alla pagina precedente dopo il modulo POST inviare
- 2. opzione cd per passare alla directory precedente
- 3. Come tornare rapidamente alla directory di lavoro precedente in bash?
- 4. ClearCase: come posso tornare alla baseline precedente?
- 5. Codeigniter Controller tornare alla pagina precedente
- 6. Vim - Vai alla posizione precedente
- 7. Come chiudere l'attività e tornare alla precedente attività in Android
- 8. come posso tornare alla pagina precedente nel ramoscello?
- 9. Come tornare alla pagina referer in CakePHP dopo il login
- 10. tornare alla stessa posizione tornando con scrolling infinito
- 11. Come tornare al punto precedente in VIM
- 12. Laravel 5 - Dopo il login reindirizzare alla pagina precedente
- 13. Restituisce l'utente alla pagina precedente dopo il login (Rails)
- 14. Pattern per il reindirizzamento alla pagina precedente dopo un'azione
- 15. Come posso tornare alla posizione corrente dell'hash utilizzando Passport.js?
- 16. Android: impedendo di tornare all'attività precedente
- 17. Dopo "Vai alla definizione", c'è un comando per tornare da dove vieni?
- 18. cosa fa questo comando linux: "cd !!: 1"
- 19. Android torna alla precedente attività
- 20. zsh: come tornare 'espanso' comando
- 21. programmazione tornare al frammento precedente nella backstack
- 22. come tornare al punto di modifica precedente
- 23. Come tornare alla pagina di reindirizzamento dopo l'accesso (codeigniter)?
- 24. bash - come convogliare il risultato dal comando su cd
- 25. riprendi webapp dalla posizione precedente?
- 26. reindirizzamento per tornare url dopo il login
- 27. iOS: Ritornare alla vista precedente
- 28. Rails reindirizza alla pagina precedente (indietro) dopo l'eliminazione
- 29. Perché il comando cd non funziona nel mio programma shell?
- 30. Come si scrive il comando "cd" in un makefile?
Grazie. 'Pushd' e' popd' funzionerebbero! :) Ma c'è un modo per spegnere l'eco? (es., che quei comandi eseguano 'quiete'?) –
@OneTwoThree Non lo so dato che di solito uso 'cd -'. Tuttavia, si potrebbe sempre fare qualcosa come "pushd>/dev/null" come un aggiramento. Se stai inserendo questo in uno script, potrebbe esserci un'opzione per silenziare la tua shell. – Levon
Capisco. Grazie!!! –