
pushd
e popd
sono comandi che consentono di lavorare con lo stack di directory e modificare la directory di lavoro corrente in Linux e altri sistemi operativi simili a Unix. Sebbene pushd
e popd
sono comandi molto potenti e utili, sono sottovalutati e usati raramente.
In questo tutorial, ti mostreremo come utilizzare il pushd
e popd
comandi per navigare nell'albero delle directory del tuo sistema.
Stack di directory #
Lo stack di directory è un elenco di directory in cui sei passato in precedenza. Il contenuto dello stack di directory può essere visualizzato usando le dirs
comando. Le directory vengono aggiunte allo stack quando si passa a una directory utilizzando pushd
comando e rimosso con il popd
comando.
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, stai lavorando all'interno di una directory.
Il pwd
comando ti consente di scoprire in quale directory ti trovi attualmente.
Durante la navigazione nel file system, utilizzare la Tab
chiave per completare automaticamente i nomi delle directory. L'aggiunta di una barra alla fine del nome della directory è facoltativa.
pushd
, popd
e dirs
sono incorporati nella shell e il suo comportamento può differire leggermente da shell a shell. Tratteremo la versione incorporata di Bash dei comandi.
pushd
Comando #
La sintassi per pushd
il comando è il seguente:
pushd [OPTIONS] [DIRECTORY]
Ad esempio, per salvare la directory corrente in cima allo stack di directory e cambiarla in /var/www
dovresti digitare:
~$ pushd /var/www
In caso di successo, il comando precedente stamperà lo stack di directory. ~
è la directory in cui abbiamo eseguito il pushd
comando. Il simbolo della tilde ~
significa directory home.
/var/www ~
pushd
prima salva la directory di lavoro corrente in cima allo 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 va in cima allo stack ma non viene salvata nello stack. Per salvarlo devi invocare pushd
da. Se usi cd
per passare a un'altra directory, l'elemento in cima allo stack andrà perso,
Aggiungiamo un'altra directory allo stack:
/var/www$ pushd /opt
/opt /var/www ~
Per evitare di modificare la directory, usa il -n
opzione. Ad esempio, per aggiungere il /usr/local
directory nello stack ma senza cambiarlo, dovresti digitare:
/opt$ pushd -n /usr/local
Poiché la directory corrente (che è sempre in alto) non viene modificata, il /usr/local
la directory viene aggiunta per seconda dalla cima dello stack:
/opt /usr/local /var/www ~
Il pushd
accetta due opzioni, +N
e -N
che ti permette di navigare fino a Nth
directory della pila. Il +N
l'opzione cambia in Nth
elemento dell'elenco dello stack che conta da sinistra a destra a partire da zero. Quando -N
viene utilizzata la direzione del conteggio da destra a sinistra.
Per illustrare meglio le opzioni, stampiamo lo stack di directory corrente:
/opt$ dirs -l -v
L'output mostrerà un elenco indicizzato dello stack di directory:
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Se vuoi passare a /var/www
directory e portalo in cima allo stack utilizzerai uno dei seguenti.
Quando si conta dall'alto verso il basso (o da sinistra a destra), l'indice della directory è 2
.
pushd +2
Quando si conteggia dal basso verso l'alto l'indice del /var/www
la directory è 1
.
pushd -1.
Se utilizzato senza alcun argomento, pushd
alternerà le prime due directory e renderà la nuova top la directory corrente. È lo stesso di quando si utilizza il cd -
comando.
popd
Comando #
Il popd
il comando assume la forma:
popd [OPTIONS]
Se utilizzato senza argomenti, popd
rimuove la directory principale dallo stack e passa alla nuova directory principale.
Supponiamo di avere il seguente stack di directory:
/opt /usr/local /var/www /etc/nginx ~
Se esegui popd
comando rimuoverà il /opt
dallo stack e cambia in /usr/local
directory:
/opt$ popd
L'output mostrerà il nuovo stack di directory:
/usr/local /var/www /etc/nginx ~
Il -n
l'opzione sopprime la modifica della directory predefinita e rimuove il secondo elemento dallo stack:
/opt$ popd -n
/usr/local /etc/nginx ~
Come pushd
, popd
accetta anche il +N
e -N
opzioni che possono essere utilizzate per rimuovere il Nth
directory dello stack.
/opt$ popd +1
/usr/local ~
Conclusione #
Normalmente, useresti il cd
comando per spostarsi da una directory all'altra. Tuttavia, se trascorri molto tempo sulla riga di comando, pushd
e popd
i comandi aumenteranno la tua produttività ed efficienza.
Se hai domande o feedback, sentiti libero di lasciare un commento.