Molte persone Linux non ne hanno mai sentito parlare pushd E popd, ma esistono da sempre. Possono anche accelerare notevolmente il processo di navigazione nelle directory sulla riga di comando. Ti spiegheremo come utilizzarli.
Cosa sono pushd e popd?
Una delle innovazioni Bill Gioia incorporato nel suo 1978 Conchiglia C era il concetto di stack di directory e i mezzi per manipolarlo: pushd E popd. Essendo l’imitazione la forma più sincera di adulazione, lo stack di directory, pushdE popd furono presto incorporati in altre shell (come Bash) e persino in altri sistemi operativi.
Il concetto di pila è semplice. Gli elementi vengono messi in pila uno alla volta, con l’elemento aggiunto più recentemente che occupa sempre la prima posizione. Quando gli elementi vengono recuperati dalla pila, vengono rimossi, in ordine, dall’alto verso il basso. Stack di questo tipo vengono spesso definiti come Ultimo ad entrare, primo ad uscire (LIFO) code.
In realtà, pushd E popd sono un po’ più flessibili di così, ma per ora è un buon modello da tenere a mente.
Dato che ci riferiamo a uno stack di directory, probabilmente non sorprende che la “d” in pushd E popd sta per “directory”. Questi comandi ti consentono di inserire o estrarre directory dallo stack di directory.
Ma in che modo ciò ci avvantaggia?
Come pushd popola lo stack
Quando usi pushdaccadono le tre cose seguenti:
- Si cambia la directory come se si usasse cd.
- Il nome e il percorso della directory vengono aggiunti allo stack.
- Lo stack viene visualizzato come un elenco di directory separate da spazi.
Negli esempi seguenti, nota come lo stack di directory cresce con ogni nuovo pushd comando. Tieni inoltre presente che la parte superiore dello stack è a sinistra: è qui che appaiono le nuove voci.
Dopo il primo pushd comando, ci sono due voci nello stack: la directory che hai lasciato e quella in cui ti sei spostato.
Per il nostro esempio, digitiamo quanto segue:
pushd ~/Desktop pushd ~/Music pushd ~/Documents pushd ~/Pictures pushd ~ L’ultimo pushd Il comando ci ha riportato alla nostra directory home, quindi la prima e l’ultima voce nello stack sono la tilde (~), che rappresenta la nostra home directory. Ciò mostra che, sebbene una directory sia già nello stack, verrà aggiunta nuovamente per altre pushd comandi.
Tieni inoltre presente che la voce più a sinistra nello stack, ovvero la voce aggiunta più di recente, è la directory corrente.
Il comando dirs
Puoi usare il dirs comando, come mostrato di seguito, per visualizzare lo stack di directory:
dirs Non influisce sullo stack, lo visualizza e basta. Alcune delle opzioni che puoi utilizzare con pushd fare riferimento alla posizione delle directory nello stack.
Se vuoi vedere la posizione numerica di ciascuna directory, puoi usare il file -v (verticale) come mostrato di seguito:
dirs -v
Se preferisci vedere il percorso enunciato della tua directory home invece della tilde (~), Aggiungi il -l (formato lungo), in questo modo:
dirs -v -l
Aggiunta di una directory allo stack
Come abbiamo visto, quando usi il file pushd comando, fa tre cose: cambia la tua directory, aggiunge la nuova directory allo stack e visualizza lo stack per te. Puoi usare il -n (nessuna rotazione) opzione per aggiungere una directory allo stack senza modificare la directory corrente.
Ecco il nostro stack di directory:
dirs -v -l Ora useremo il file pushd comando con l’opzione -n e pas nel file /home/dave directory come parametro. Quindi controlleremo nuovamente lo stack di directory.
Digitiamo 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 nello stack. Non può occupare la prima posizione perché lo slot zero è sempre la directory corrente.
Non abbiamo lasciato la directory corrente, ~/Videosquindi non è stato ruotato in un’altra posizione nello stack.
Modifica della directory ruotando lo stack
È possibile utilizzare parametri numerici con pushd per spostarsi in qualsiasi directory in uno stack e lo stack ruota quando lo fai. La directory che hai scelto di spostare diventa quindi la prima voce nello stack.
Fai riferimento alle directory nello stack tramite il loro numero di posizione. Puoi contare dall’alto o dal basso della pila. Per i numeri positivi, come +3, contare dall’alto; per i numeri negativi, come -2, contare dal basso.
La directory /home/dave/Documents è nella posizione tre. Possiamo usare il seguente comando per spostare quella directory:
pushd +3 Le directory nello stack sopra la directory che abbiamo scelto vengono spostate in fondo allo stack. La directory scelta ora occupa la prima posizione e verremo spostati in quella directory.
Se vogliamo passare alla directory in fondo allo stack, possiamo usare il seguente comando:
pushd -0 L’ultima directory viene spostata nel primo slot e tutte le altre vengono spostate più in basso nello stack. Siamo cambiati in ~/Pictures directory.
Il comando popd
Puoi usare il popd comando per rimuovere le directory dallo stack.
Se guardiamo lo stack delle directory, possiamo vedere che la directory nella posizione 1 è /home/dave. Per rimuoverlo dallo stack, digitiamo quanto segue a cui passare il numero popd:
dirs -v -l popd +1 IL /home/dave directory è stata rimossa e quelle che erano sotto di essa nello stack sono state spostate ciascuna di una posizione.
Proprio come possiamo fare con pushdpossiamo contare dal fondo dello stack con popd. Per rimuovere l’ultima directory dallo stack, digitiamo:
popd -0 IL ~/Music la directory viene rimossa dall’ultima posizione nello stack.
Per cambiare la directory, fare qualcosa e poi tornare alla directory precedente, puoi usare pushd E popd insieme.
Useremo pushd per spostarsi in una directory diversa. Useremo popd per scartare la directory più in alto nello stack e spostarsi nella directory nella seconda posizione. Questa è la directory da cui sei appena uscito, quindi verrai riportato nella directory in cui ti trovavi originariamente.
Digitiamo quanto segue:
pushd ~ popd Abbiamo iniziato nel ~/Projects elenco, pushd alla directory home, quindi popd ritorno al ~/Projects directory.
Rotazione attraverso l’intera pila
Illustreremo come ruotare uno stack con alcune directory annidate, ma potresti utilizzare qualsiasi directory ovunque nel file system.
Il nostro livello più profondo di nidificazione è:
/home/dave/Projects/htg/articles Dalla directory home, scenderemo progressivamente attraverso ciascuna directory fino a raggiungere la directory degli articoli. Quindi, esamineremo lo stack di directory.
Digitiamo quanto segue:
pushd ~/Projects pushd htg pushd articles dirs -v -l Quando emetti ripetutamente pushd +1 comandi, puoi scorrere in tondo attraverso la pila di directory. Se lo fai spesso, pushd +1 sarebbe un buon candidato per un alias.
Digitare quanto segue:
pushd +1
Timbratura sulla pila
È facile tornare alle vecchie abitudini e al vecchio utilizzo cd per cambiare directory. Se lo fai, stamperai la prima directory nello stack. Ciò è inevitabile, poiché il primo slot è riservato alla directory di lavoro corrente e nessuno degli altri cambia posizione.
Per fare ciò, digitare quanto segue:
dirs -v -l cd ~/Music dirs -v -l Dopo che ti sarai abituato a pushd E popd comandi (e, forse, usali per creare alcuni alias), avrai un modo superveloce per passare da una directory all’altra.
Questo è il motivo per cui restiamo in giro la riga di comando. L’efficienza è formidabile, vero?