2010-03-09 15 views
7

Sono un novizio completo di bash scripting. Ricordo che c'era un modo per eseguire il comando cd, tornando automaticamente alla directory precedente (senza un esplicito cd ...). Qualche idea?opzione cd per passare alla directory precedente

+0

Solo per essere curiosi, perché questo voto come "non è una domanda reale"? : S Si prega di lasciare un commento e cercherò di chiarire ... –

risposta

13

Se si desidera tornare all'ultima directory, è possibile utilizzare cd -.

Se sono necessari più posti in cui tornare, provare pushd <dir> (anziché cd <dir>) e quindi è possibile tornare indietro con popd.

+0

Buono a sapersi. Grazie :) –

+0

Accettazione. Anche se sto iniziando un paio di sub-shell nella mia sceneggiatura, questa sembra la migliore alternativa. –

4

Trovato! Posso eseguirlo come sotto-shell.

Un elenco di comandi incorporato tra parentesi viene eseguito come sottoshell.

FONTE: http://tldp.org/LDP/abs/html/subshells.html

+1

Si noti che eseguirlo in una subshell significa che cose come l'impostazione di variabili d'ambiente da utilizzare all'esterno non funzionerà. –

+2

In senso stretto non si "torna" alla directory corrente poiché non lo si è mai lasciato nell'ambito della shell genitore. – Sorpigal

+0

@Ignacio: Sì, ma per quello che mi serve va bene. @Sorpigal: buon punto. Ne sono al corrente :) –

1

Inoltre, pushd e popd può venire molto utile - rappresentano le operazioni su una pila di posizioni di directory - che consente di "viaggiare indietro nel tempo".

1

Puoi anche provare il pacchetto cdargs. È possibile trovare un tutorial qui: http://www.csrdu.org/nauman/2011/01/16/helpful-tips-for-newbie-system-admins/

Sommario:

yum -y install compat-libstdc++-296 
wget http://www.skamphausen.de/downloads/cdargs/cdargs-1.31-1.i386.rpm 
rpm -ivh cdargs-1.31-1.i386.rpm 
updatedb 
source `locate cdargs-bash.sh` 
# you can use any method you like for locating this file and running it 
# also, you need to put it in the ~/.bash_profile to run it every time you login 
echo source `locate cdargs-bash.sh` >> ~/.bash_profile 
cdb 

Mark una directory e muoversi:

cd /etc/conf/httpd/ext/ 
mark apaconf 
cd /usr/local/src/ 
cdb apaconf 

si veda il link per altri comandi o cercare la rete.

Problemi correlati