cd (Unix)

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

cd (change directory) is een commando op Unix en Unix-achtige systemen om de huidige werkdirectory te wijzigen. Meestal zal het commando met één argument aangeroepen worden; dat argument bevat dan het (absolute of relatieve) pad naar de nieuwe directory. Als het commando zonder argumenten aangeroepen wordt, verandert de huidige werkdirectory in de waarde van de omgevingsvariabele $HOME, waarin de thuisdirectory van de gebruiker staat. Als die variabele om wat voor reden dan ook niet gezet is zal het commando falen. Datzelfde zal uiteraard ook gebeuren als de opgegeven directory niet bestaat of niet toegankelijk is.

Omdat cd de toestand van het huidige proces verandert (namelijk de werkdirectory) moet het in de shell ingebouwd worden en kan het geen apart programma zijn, want onder Unix kunnen dochterprocessen niet de toestand van hun ouderproces veranderen.

In modernere shells wordt het pad naar de oorspronkelijke directory opgeslagen in $OLDPWD en het pad naar de nieuwe directory wordt opgeslagen in $PWD. Met cd - kan dan naar de "vorige" directory teruggegaan worden. Op dat moment veranderen $PWD en $OLDPWD van plaats, oftewel nogmaals cd - gaat niet "nog verder terug"!

In modernere shells is het tevens mogelijk om twee argumenten mee te geven. In dat geval wordt in de naam van de huidige directory het eerste voorkomen van het eerste argument, vervangen door het tweede argument. De resulterende naam is de naam van de directory waar men naar toe gaat. Voorbeeld:

de huidige directory: /home/jan/literatuur/engels
de gebruiker geeft het commando cd jan piet
de nieuwe directory wordt dan: /home/piet/literatuur/engels


Het equivalent in POSIX C is de functie chdir() in unistd.h.