Navigarea prin structuri complexe de directoare într-un terminal Linux poate deveni consumatoare de timp, în special în timpul administrării sistemului sau al sarcinilor de scripting. Deși cd (change directory) este comanda de bază pentru navigarea în directoare, îi lipsește capacitatea de a gestiona o stivă de directoare – o caracteristică pe care pushd și popd o aduc pe masă.
Acest articol oferă o analiză aprofundată a comenzilor pushd și popd, arătându-vă cum să raționalizați navigarea în directoare și să vă eficientizați fluxurile de lucru din terminal.
pushd (push directory) salvează directorul curent într-o stivă și apoi trece la un nou director.
popd (pop directory) elimină directorul superior din stivă și vă întoarce la cel anterior.
Aceste comenzi fac parte din mecanismul de stivuire a directoarelor disponibil în bash, zsh și alte shell-uri moderne.
pushd și popd sunt extrem de utile atunci când:
Vă deplasați frecvent între două sau mai multe directoare.
Scrieți scripturi shell care trebuie să schimbe temporar directoarele.
Doriți să evitați poluarea shell-ului cu comenzi cd inutile și să mențineți contextul.
Împinge directorul curent pe stivă.
Schimbă directorul în /path/to/target.
Exemplu:
Sunteți acum în /var/www/html, iar directorul dvs. de origine ~ este stocat pe stivă.
Scoate directorul superior din stivă.
Vă întoarce la directorul anterior.
Continuând exemplul de mai sus:
V-ați întors în ~.
Utilizați dirs pentru a vizualiza starea curentă a stivei de directoare:
Exemplu de ieșire:
Indexul 0 reprezintă directorul curent.
Indicii mai mari reprezintă directoarele anterioare.
Puteți utiliza:
pentru a împinge directorul curent în stivă fără a schimba directoarele.
Eficient pentru dezvoltarea iterativă fără comenzi cd repetitive.
Iată un script care construiește codul într-un director temporar și se întoarce curat:
Dacă scriptul eșuează în /tmp/build-env, vă întoarceți în continuare la locația inițială.
Acest lucru face ca scripturile dvs. să fie mai ușor de întreținut, în special atunci când apar erori – vă puteți întoarce în siguranță la directorul original.
Atunci când lucrați cu apeluri pushd multiple, dirs -v vă ajută să urmăriți istoricul navigării.
Puteți elimina un anumit director din stivă:
Elimină directorul de la indexul 1 (nu neapărat cel curent).
Stack Overflow (nu site-ul 😄): Utilizarea excesivă a pushd fără apeluri popd corespunzătoare vă poate umfla stiva, ducând la o stare confuză a directoarelor.
Nu sunt disponibile peste tot: pushd și popd sunt integrate în bash, zsh și alte shell-uri similare – este posibil să nu fie disponibile în shell-uri minimale precum sh.
Nu sunt persistente: Stiva de directoare este bazată pe sesiune. Odată ce sesiunea dvs. de terminal se încheie, stiva se resetează.
În .bashrc sau.zshrc, adăugați:
Acest lucru reduce apăsarea tastelor și sporește productivitatea.