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