Torna alla directory precedente nella shell


306

C'è un modo per tornare alla directory precedente in cui stavamo usando bash, tcsh senza usare pushd / popd? Vorrei digitare qualcosa come "back" e sono tornato alla directory precedente in cui mi trovavo.

Modificare:

"cd -" funziona, ma solo per le directory attuali e precedenti. Posso comunque tornare alla directory precedente precedente, ad esempio come è possibile tornare indietro nel browser Web?

Saluti


1
Come indicato di seguito, puoi farlo usando "pushd" e "popd".
blueyed

8
Solo una nota a margine "cd -" passa alla directory predefinita dell'utente (/ home / nome utente)
sdaffa23fdsf

1
Migliore risposta imho: unix.stackexchange.com/a/180640/158177 fornisce da cd -1 a cd -9 che penso sia ciò che l'OP ha richiesto
Titou,

Risposte:


413

cd - (torna alla directory precedente)

Se si desidera poter accedere alle altre directory precedenti, questo non è possibile. Ma controlla questo script e le istruzioni:

Storia delle directory visitate in BASH

Il comando cd funziona come al solito. La nuova funzionalità è la storia delle ultime 10 directory e il comando cd è stato ampliato per visualizzarlo e accedervi. cd - (o semplicemente premendo ctrl + w) mostra la cronologia. Di fronte a ogni nome di directory viene visualizzato un numero. cd -num con il numero desiderato passa alla directory corrispondente dalla cronologia.


20
anche pushd e popd potrebbero essere utili
lorenzog,

6
@lorenzog: lydonchandra, nella sua domanda, ha detto "senza usare pushd / popd"
Snark

@ ogc-nick per usarlo cd --in modo simile a un menu, dovresti usare lo script citato
Ram

1
@ ogc-nick no non lo fa. La --separa semplicemente un comando e le sue opzioni dai parametri (vedi questo post ). Poiché non segue alcun argomento --, il comando finale è solo quello cdche passa alla directory home. Questo potrebbe essere stato il secondo directory precedente, ma questo è solo una coincidenza.
Griddo,

wow zucchero sintattico molto
BugWhisperer

24

Puoi anche usare la variabile cd $OLDPWD. Questo può essere usato anche negli script di shell.


6
$ OLDPWD mantiene l'ultima directory da cui provieni, che è buona per gli script. Uso molto $ OLDPWD con il comando cp. Ad esempio cp -v $ OLDPWD / file.
Neil Wightman,

1

Per Windows (incluso il caso console prompt dei comandi Node.js) non funziona cd - Per spostarti in alto di una directory funziona

cd ..

3
cd .. passa alla directory principale, che non è l'oggetto della domanda.
ViaSat,

1
Questo è bash qui, no Windows.
Timo,

0

Trovo che il modo più semplice per farlo sia con questa modifica di potenza .bashrc: https://github.com/wting/autojump . Si arriva a "contrassegnare" le cartelle in cui si naviga, dando loro un nome abbreviato che è facile da ricordare (il mio consiglio; quanto sopra non è nei documenti), come Pics for Pictures, ecc. 'Jump' ti riporta alla cartella che 'segnato' e 'marchi' elenca le cartelle che hai aggiunto allo 'stack' (come con pushd e pop d), con l'ulteriore vantaggio che i tuoi segni rimangono gli stessi da una sessione all'altra, all'infinito.

Devo ancora provarlo su più di un hard disk, ma i risultati dovrebbero essere simili a quelli che usano un singolo volume.

S Wright


-1

Se sei sceso dall'albero delle directory e vuoi tornare indietro, cd ..è il mio preferito. Puoi saltare abbastanza facilmente all'interno di un ramo dell'albero cd ..salendo una directory e cd ../..due e cd ../../..tre, ecc. Puoi anche andare su e giù per un ramo diverso con lo stesso comando, come cd ../../exampleo cd ../../../example/exampleecc. Per un semplice interruttore che va avanti e indietro tra le directory cd -o $OLDPWDsono le tue migliori scommesse, come altri hanno già detto.


Qualche motivo particolare per cui questo è stato downvoted? Contiene risposte corrette, anche se forse non le uniche.
Adam Erickson,

-2

Penso che cd ..potrebbe aiutare. Se lo fai in una ls -aqualsiasi directory vedresti che ci sono due voci: una chiamata "." e un altro chiamato ".."; il punto singolo fa riferimento alla directory in cui ci si trova già, mentre il doppio è la directory precedente nel percorso.


22
..non è la directory precedente, è solo la directory principale.
Der Hochstapler,

4
Questa risposta fornisce informazioni utili anche se non risponde correttamente alla domanda. Pertanto non ha senso accumulare voti negativi su questo, ho votato a favore dello sforzo.
Titou,

1
Questo non è Berkley, non ci sono premi speciali solo per la partecipazione
nathanchere
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.