Introduzione

pushd e popd sono comandi che consentono di lavorare con lo stack di directory e modificare l'attuale directory di lavoro in Linux e altri sistemi operativi simili a Unix.

In questo tutorial, ti mostreremo come usare i comandi pushd e popd per navigare nell'albero delle directory del sistema.

Stack di directory

Lo stack di directory è un elenco di directory che è stata precedentemente esplorata. Il contenuto dello stack di directory può essere visualizzato utilizzando il comando dirs. Le directory vengono aggiunte allo stack quando si passa a una directory utilizzando il comando pushd e vengono rimosse con il comando popd.

La directory di lavoro corrente è sempre in cima allo stack di directory. La directory di lavoro corrente è la directory (cartella) in cui l'utente sta attualmente lavorando. Ogni volta che interagisci con la riga di comando, lavori all'interno di una directory.

Il comando pwd ti consente di scoprire in quale directory ti trovi attualmente.

Durante la navigazione nel file system, utilizzare il tasto Tab per completare automaticamente i nomi delle directory. L'aggiunta di una barra alla fine del nome della directory è facoltativa.

pushd, popd e dirs sono builtin di shell, e il loro comportamento può differire leggermente a seconda della shell.

Comando pushd

La sintassi del comando pushd è la seguente:

pushd [OPTIONS] [DIRECTORY]

Ad esempio, per salvare la directory corrente nella parte superiore dello stack di directory e cambiarla a /var/www, digitare:

pushd /var/www

In caso di successo, il comando sopra stampa lo stack di directory. ~ è la directory in cui abbiamo eseguito il comando pushd. Il simbolo tilde ~ significa "home directory".

Dovreste ricevere un messaggio di output simile al seguente:

/var/www ~

pushd prima salva la directory di lavoro corrente nella parte superiore dello stack e quindi passa alla directory specificata. Poiché la directory corrente deve essere sempre in cima allo stack, una volta modificata la nuova directory corrente passa in cima allo stack ma non viene salvata nello stack. Per salvarlo devi utilizzare pushd dalla posizione corrente. Se si utilizza cd per passare a un'altra directory, l'elemento superiore dello stack andrà perso,

Aggiungiamo un'altra directory allo stack:

pushd /opt

Dovreste ricevere un messaggio di output simile al seguente:

/opt /var/www ~

Per evitare la modifica del cambio directory, utilizzare l'opzione -n. Ad esempio, per aggiungere la directory /usr/local allo stack ma senza cambiare la directory corrente, dovresti digitare:

pushd -n /usr/local

Poiché la directory corrente (che è sempre nella parte superiore) non viene modificata, la directory /usr/local viene aggiunta come seconda dalla parte superiore dello stack.

Dovreste ricevere un messaggio di output simile al seguente:

/opt /usr/local /var/www ~

pushd accetta due opzioni, +N e -N che consentono di navigare a Nth directory dello stack. L'opzione +N cambia in Nth elementi dell'elenco di stack contando da sinistra a destra a partire da zero. Quando viene utilizzata l'opzione -N, la direzione del conteggio va da destra a sinistra.

Per illustrare meglio le opzioni, stampiamo lo stack di directory corrente:

dirs -l -v

L'output mostrerà un elenco indicizzato dello stack di directory:

 0  /opt
 1  /usr/local
 2  /var/www
 3  /home/noviello

Se si desidera passare alla directory /var/www e portarla in cima allo stack, si utilizzerà una delle seguenti opzioni.

Quando si conta dall'alto verso il basso (o da sinistra a destra), l'indice della directory è 2.

pushd +2

Quando si conta dal basso verso l'alto, l'indice della directory /var/www è 1.

pushd -1

Se utilizzato senza alcun argomento, pushd alternerà le prime due directory e renderà la nuova directory principale corrente. È lo stesso di quando si utilizza il comando cd -.

Comando popd

Il comando popd assume la seguente forma:

popd [OPTIONS]

Se utilizzato senza alcun argomento, popd rimuove la directory principale dallo stack e passa alla nuova directory principale.

Per esempio, se abbiamo il seguente stack di directory:

/opt /usr/local /var/www /etc/nginx ~

Se si esegue il comando popd, verrà rimossa /opt dallo stack e si passerà alla directory /usr/local:

popd

L'output mostrerà il nuovo stack di directory:

/usr/local /var/www /etc/nginx ~

L'opzione -n elimina la modifica della directory predefinita e rimuove il secondo elemento dallo stack:

popd -n

Dovreste ricevere un messaggio di output simile al seguente:

/usr/local /etc/nginx ~

Come il comando pushd, popd accetta anche le opzioni +N e -N che possono essere utilizzate per rimuovere le Nth directory dello stack.

popd +1

Dovreste ricevere un messaggio di output simile al seguente:

/usr/local ~

Conclusione

In questo tutorial abbiamo visto come utilizzare i comandi Pushd e Popd.