Cum să utilizați comanda cd pe Linux

Unele instrucțiuni Linux sunt atât de obișnuite, încât le folosim automat, fără să ne dăm seama. Comanda `cd` pentru a schimba directoarele este un exemplu. Există câteva metode care vă pot ajuta să utilizați `cd` mai eficient sau chiar să renunțați la ea complet.

O comandă pe care o ignori adesea

Clipim constant, dar de cele mai multe ori nu suntem conștienți de acest lucru. Dacă nu avem o problemă cu ochii, rareori ne gândim la această mișcare mică și repetitivă. Asemănător, unele comenzi Linux, deși le utilizăm zi de zi, rămân la periferia atenției noastre, fiind considerate minore și simple.

Încă din primele momente în care folosim un sistem Linux, învățăm cum să utilizăm comanda `cd`, integrată în Bash și alte shell-uri. Probabil că ați avut experiență anterioară cu ea pe alte sisteme și nu ați avut nevoie de explicații suplimentare. Schimbă directorul curent, nu-i așa? Ce altceva ar mai fi de știut?

Ei bine, sunt mai multe decât ați putea crede. Iată câteva sugestii și trucuri care vă pot spori productivitatea.

Funcționalitățile de bază ale comenzii `cd`

Pentru a fi exacți, să trecem rapid în revistă utilizările standard ale `cd`.

Dacă ne aflăm în directorul personal, dar vrem să accesăm `/usr/lib/firefox/browser` și apoi să revenim la directorul de acasă, putem folosi următoarele instrucțiuni:

cd /usr/lib/firefox/browser/
cd /home/utilizator

Nu este nevoie să introduceți întreaga cale; puteți utiliza completarea automată. Pentru fiecare segment al căii, după ce ați introdus suficiente litere pentru a diferenția numele directorului de altele, apăsați tasta Tab pentru a completa automat numele.

De exemplu, introduceți următoarele în linia de comandă:

cd /usr/lib/fire

Acum, apăsați Tab, iar shell-ul va completa restul numelui de director „firefox”. Dacă adăugați „/b” la cale și apăsați din nou Tab, va adăuga directorul „browser” la comandă.

Shell-ul adaugă un slash, astfel încât să puteți repeta procesul de completare cu Tab. De aceea, un slash apare în prima comandă. Nu apare în a doua, deoarece a fost introdus manual.

Puteți utiliza tilda (~) ca o scurtătură pentru a reveni rapid la directorul personal, indiferent de unde vă aflați în sistemul de fișiere; pur și simplu introduceți următoarea comandă:

cd ~

Acestea sunt exemple de căi absolute, unde specificați întreaga cale de la rădăcina sistemului de fișiere până la directorul dorit pentru `cd`.

Căile relative sunt raportate la directorul curent. În directorul personal, există un director numit `work`. Puteți folosi comanda `tree` pentru a vedea structura de directoare din directorul `work`— trebuie doar să tastați următoarea comandă:

tree

Directorul `work` include un director numit `dev`. Există, de asemenea, un director `dev` în directorul rădăcină al sistemului. Puteți folosi `ls` cu opțiunea `-d` (director) pentru a vedea fiecare dintre aceste directoare. Opțiunea `-hl` (lizibilă, listare lungă) îi cere lui `ls` să folosească unități ușor de înțeles pentru dimensiunile directoarelor și să afișeze informațiile într-un format detaliat.

Dacă introduceți `dev`, shell-ul va considera că vă referiți la directorul `dev` din directorul curent. Pentru a-l obliga să se refere la directorul `dev` din rădăcina sistemului, trebuie doar să adăugați un slash înainte pentru a reprezenta rădăcina, după cum se arată mai jos:

ls -d dev -hl
ls -d /dev -hl

Comanda `cd` se comportă similar cu `ls` în acest sens. Dacă vă referiți la directorul `dev`, așa cum se arată mai jos, se va considera că vă referiți la directorul din interiorul directorului de lucru:

cd dev

Fără un slash inițial, se va presupune că și căile mai lungi încep din directorul curent, așa cum se vede mai jos:

cd dev/mobile/android

Navigarea cu două puncte

Identificatorul dublu punct (..) semnifică directorul părinte al celui curent. Dacă vă aflați într-un subdirector adânc încorporat, puteți utiliza `..` cu `cd` pentru a vă muta în directorul părinte al celui în care vă aflați.

Aceasta vă va muta cu două nivele în sus în structura de directoare. Dacă adăugați mai multe `..` la comandă, veți putea urca un număr nelimitat de nivele în structura de directoare.

Introduceți următoarele:

cd ..
cd ../..

Puteți crea alias-uri pentru a executa aceste acțiuni, introducând următoarele:

alias .2="cd ../.."
alias .3="cd ../../.."

Le puteți utiliza la fel ca și comenzile în sine.

Pentru ca alias-urile să fie persistente după repornirea sistemului, trebuie să le adăugați în fișierul `.bashrc` sau `.bash_aliases`.

Comutarea rapidă între două directoare

Cratima (-) este un alt simbol care are o funcție specială. Aceasta schimbă directorul cu cel din care tocmai ați venit.

În acest exemplu, să presupunem că vă aflați în directorul „c”. Puteți utiliza `cd` pentru a trece la directorul „al patrulea”. Apoi, puteți folosi `cd -` pentru a comuta între cele două directoare.

Pentru a realiza acest lucru, introduceți următoarele:

cd ../forth

cd –

cd –

Numele directorului în care vă mutați apare înainte de a vă muta efectiv în el.

O altă formă de relativitate

Shell-ul folosește directorul curent ca „rădăcină” sau director de bază pentru căile relative. Puteți utiliza variabila de mediu `CDPATH` pentru a stabili o altă locație ca director de bază pentru căile relative. Dacă petreceți cea mai mare parte a timpului într-o anumită parte a sistemului de fișiere, acest lucru vă poate economisi multe apăsări de taste (și timp) zilnic.

Să introducem următoarea comandă pentru a seta directorul `work/dev/projects` ca director de bază pentru căile relative:

export CDPATH=/home/utilizator/work/dev/projects

Acum, de fiecare dată când utilizați comanda `cd`, locația din variabila de mediu `CDPATH` este verificată prima pentru a găsi numele de director corespunzătoare. Dacă există o potrivire cu directorul specificat în comanda `cd`, veți fi transferat în acel director.

Indiferent de unde vă aflați în sistemul de fișiere, când utilizați comanda `cd`, shell-ul va verifica dacă directorul dorit se află în directorul de bază. Dacă da, veți fi mutat în acel director.

Dacă directorul țintă începe cu un slash (/), ceea ce îl transformă într-o cale absolută, variabila de mediu `CDPATH` nu va avea niciun efect.

Pentru a demonstra acest lucru, vom introduce următoarele comenzi:

cd c
cd prolog
cd /usr
cd forth

Variabila de mediu `CDPATH` este efectiv o cale, similar cu variabila de mediu `PATH`. Când introduceți o comandă, shell-ul caută o potrivire în locațiile din `PATH`. Când folosiți `CDPATH`, shell-ul caută locațiile din variabila de mediu `CDPATH` pentru a găsi o potrivire. Similar cu `PATH`, `CDPATH` poate conține mai multe locații.

Pentru ca shell-ul să caute în directorul curent înainte de a verifica alte locații din variabila de mediu `CDPATH`, trebuie doar să adăugați un punct (.) la începutul căii, astfel:

export CDPATH=.:/home/utilizator/work/dev/projects

Pentru a face aceste setări permanente, trebuie să le adăugați într-un fișier de configurare, cum ar fi `.bashrc`.

Un aspect de reținut: dacă stabiliți un director de bază, acesta va influența și modificările de director efectuate în cadrul scripturilor. Pentru a evita acest lucru, puteți utiliza căi absolute în scripturile dvs. sau un test în fișierul `.bashrc`, după cum se arată mai jos:

if test “${PS1+set}”; then CDPATH=.:/home/utilizator/work/dev/projects; fi

Acest cod verifică dacă variabila prompt-line de comandă, `$PS1`, a fost setată. Variabila de mediu `CDPATH` va fi configurată doar dacă testul este valid.

Utilizarea comenzii `shopt` cu `cd`

Cu comanda `shopt`, puteți configura diverse opțiuni pentru shell. Unele dintre acestea vă pot îmbunătăți utilizarea `cd`. Pentru a le configura, utilizați opțiunea `-s` (activare) cu `shopt` și introduceți numele opțiunii.

Opțiunea `cdspell` verifică numele directorului și corectează unele erori frecvente de tastare, inclusiv caractere transpuse sau lipsă sau nume cu prea multe caractere. Dacă găsește un director care corespunde cu oricare dintre corecții, afișează calea corectată și efectuează acțiunea `cd`.

De exemplu, introducem următoarele pentru a activa opțiunea `cdspell` și scriem greșit „Desktop” pentru a vedea dacă shell-ul o corectează pentru noi:

shopt -s cdspell
cd Desktpo

Shell-ul a detectat eroarea, a corectat-o și a schimbat directorul în „Desktop”.

O altă opțiune `shopt` pe care o puteți folosi cu `cd` este `autocd`. Aceasta elimină complet necesitatea de a introduce `cd`. Orice introduceți, dacă nu este o comandă, un script sau un alt fișier executabil (cum ar fi un alias), este utilizat ca director țintă. Dacă se poate realiza trecerea în acel director, acesta este afișat în fereastra terminalului, iar trecerea la acel director este realizată.

Ca exemplu, introducem următoarele:

shopt -s autocd
/usr/local/games
/etc
~

Iată! Puteți naviga prin sistemul de fișiere fără să utilizați `cd`!

Setările modificate cu `shopt` afectează doar shell-urile interactive, nu scripturile.

Un rezumat despre comanda `cd`

Probabil nu veți adopta toate aceste metode. Totuși, este posibil să fi găsit ceva interesant sau util aici. Până la urmă, orice simplifică sau accelerează navigarea în linia de comandă este binevenit!