Come usare pushd e popd in Linux

Contenuti

Una finestra di terminale su un desktop Linux in stile Ubuntu.

Molte persone Linux non hanno mai sentito parlare pushd e popd, ma sono in giro da sempre. Possono anche velocizzare notevolmente la procedura di navigazione della directory della riga di comando.. Ti mostreremo come usarli.

Cosa sono pushd e popd?

Una delle novità Bill Joy integrato nel tuo 1978 C Shell era il concetto di stack di directory e i mezzi per manipolarlo: pushd e popd. l'imitazione è la più sincera forma di adulazione, lo stack di directory, pushd, e popd presto furono incorporati in altri gusci (come bash) e anche ad altri sistemi operativi.

Il concetto di pila è semplice. Gli oggetti vengono messi in pila uno alla volta, e l'elemento aggiunto più di recente occupa sempre la prima posizione. Quando gli oggetti vengono recuperati dalla pila, sono eliminati, un ordine, da cima a fondo. Gli stack di questa natura sono spesso indicati come Ultimo ad entrare, primo ad uscire (LIFO) cola.

Veramente, pushd e popd sono un po' più flessibili di così, ma questo è un buon modello a cui prestare attenzione per ora.

Come ci riferiamo a uno stack di directory, probabilmente non sorprende che il “D” Su pushd e popd significa “directory”. Questi comandi consentono di inserire directory o rimuoverle dallo stack di directory.

Ma, In che modo questo ci avvantaggia??

Come pushd riempie lo stack

Quando usi pushd, accadono le seguenti tre cose:

  • Cambi la directory come se avessi usato cd.
  • Il nome della directory e il percorso vengono aggiunti allo stack.
  • Lo stack viene visualizzato come un elenco di directory separate da spazi.

Nei seguenti esempi, guarda lo stack di directory crescere con ogni nuovo pushd comando. Nota anche che la parte superiore della pila è a sinistra; ecco dove appaiono le nuove voci.

Dopo il primo pushd comando, ci sono due voci nello stack: la directory che hai lasciato e quella che hai spostato.

Per il nostro esempio, scriviamo quanto segue:

pushd ~/Desktop
pushd ~/Musica
pushd ~/Documenti
pushd ~/Immagini
spinto ~

L'ultimo pushd Il comando ci ha riportato alla nostra home directory, quindi la prima e l'ultima voce nello stack sono la tilde (~), che rappresenta la nostra home directory. Questo dimostra che, anche se una directory è già nello stack, verrà aggiunto di nuovo per gli altri pushd comandi.

Nota anche che la voce più a sinistra nello stack, che è la voce aggiunta più di recente, è la tua directory corrente.

Il comando dirs

Puoi usare il dirs comando, come mostrato di seguito, per visualizzare lo stack di directory:

dir

Non influisce sullo stack, solo il campione. Alcune delle alternative con cui puoi usare pushd controlla la posizione delle directory nello stack.

Se vuoi vedere la posizione numerica di ogni directory, puoi usare il -v (verticale) come mostrato di seguito:

dirs -v

Se preferisci vedere il percorso scritto della tua home directory invece della tilde (~), Aggiungi il -l (formato lungo) opzione, Così:

dirs -v -l

Aggiungi una directory allo stack

Come abbiamo visto, quando usi il pushd comando, fa tre cose: cambia la tua directory, aggiungi la nuova directory allo stack e mostra lo stack per te. Puoi usare il -n (nessuna rotazione) per aggiungere una directory allo stack senza modificare la directory corrente.

Ecco il nostro stack di directory:

dirs -v -l

Ora, useremo il pushd comando con l'opzione -n ​​e pas nel /home/dave directory come parametro. Dopo, controlleremo di nuovo lo stack di directory.

Scriviamo quanto segue:

pushd -n /home/dave
dirs -v -l

il /home/dave La directory è stata aggiunta allo stack nello slot 1, che è il secondo posto nella pila. Non può essere nella prima posizione perché lo slot zero è sempre la directory corrente.

Non lasciamo la directory corrente, ~/Videos, quindi non è stato ruotato in un'altra posizione nella pila.

Cambio di directory ruotando lo stack

È possibile utilizzare parametri numerici con pushd per spostarsi in qualsiasi directory su uno stack, e lo stack gira quando lo fa. La directory che hai scelto di spostare diventa la prima voce nello stack.

Si riferisce alle directory nello stack in base al loro numero di posizione. Può contare dall'alto o dal basso della pila. Per numeri positivi, Che cosa +3, contare dall'alto; per i numeri negativi, Che cosa -2, conto alla rovescia.

Elenco / casa / dave / Documenti è in posizione tre. Possiamo usare il seguente comando per spostare quella directory:

spinto +3

Le directory nello stack sopra la directory che abbiamo scelto vengono spostate alla fine dello stack. La nostra directory scelta ora occupa la prima posizione e ci spostiamo in quella directory.

Se vogliamo passare alla directory in fondo allo stack, possiamo usare il seguente comando:

spinto -0

L'ultima directory viene spostata nel primo slot e tutte le altre vengono spostate in basso nello stack. Passiamo al ~/Pictures directory.

Il comando popd

Puoi usare il popd comando per rimuovere le directory dallo stack.

Se osserviamo lo stack di directory, possiamo vedere che la directory in posizione 1 è /home/dave. Per cancellare questo dalla pila, scriviamo quanto segue per passare il numero a popd:

dirs -v -l
popd +1

il /home/dave la directory è stata rimossa, e quelli che erano sotto di lui nel mucchio sono saliti di un posto.

Nello stesso modo in cui possiamo con pushd, possiamo contare dal fondo della pila con popd. Per eliminare l'ultima directory nello stack, abbiamo scritto:

popd -0

il ~/Music La directory viene rimossa dall'ultima posizione nello stack.

Per cambiare la directory, fai qualcosa e poi torna alla directory precedente, Puoi usare pushd e popd insieme.

noi useremo pushd per passare a una directory diversa. noi useremo popd per rilasciare la directory in cima allo stack e passare alla directory nella seconda posizione. Questa è la directory da cui sei appena arrivato, così sei tornato alla directory in cui ti trovavi originariamente.

Scriviamo quanto segue:

spinto ~
popd

Abbiamo iniziato nel ~/Projects directory, pushd alla directory principale, e successivamente popd torna a ~/Projects directory.

Gira attraverso l'intero stack

Illustreremo come ruotare uno stack con alcune directory annidate, ma puoi usare qualsiasi directory ovunque nel filesystem.

Il nostro livello più profondo di nidificazione è:

/home/dave/Progetti/htg/articoli

Dalla directory principale, scenderemo progressivamente attraverso ogni directory fino a raggiungere la directory dei post. Dopo, vedremo lo stack di directory.

Scriviamo quanto segue:

pushd ~/Progetti
pushd htg
articoli spinti
dirs -v -l

Quando trasmette ripetutamente pushd +1 comandi, può eseguire il loop più e più volte nello stack di directory. Se lo fai spesso, pushd +1 sarebbe un buon candidato per un alias.

Scrivi quanto segue:

spinto +1

IMPARENTATO: Come creare alias e funzioni di shell in Linux

Stampato in pila

È facile tornare alle vecchie abitudini e all'uso cd per cambiare directory. Se lo fa, sigillerà la prima directory nello stack. Questo è inevitabile, poiché il primo spazio è riservato alla directory di lavoro corrente; nessuno degli altri cambia posizione.

Per fare questo, scrivi quanto segue:

dirs -v -l
cd ~/Musica
dirs -v -l


Dopo che ti sei abituato pushd e popd comandi (e, può essere, usali per creare degli alias), avrai un modo super veloce per saltare tra le directory.

Ecco perché rimaniamo sulla riga di comando. L'efficienza oscilla, verità?

IMPARENTATO: 37 Comandi importanti di Linux che dovresti conoscere

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.