Halusin tehdä yksinkertaisen C -ohjelman, joka vaihtaisi projektihakemistooni. Sen sisältö on seuraava: 
#include <unistd.h> int main() { chdir("/home/enedil/projects/algo"); return 0; } 
 Käännin sen seuraavalla komennolla (pro.c on sen tiedostonimi): 
gcc pro.c -o /usr/local/bin/pro 
Ei virheitä eikä varoituksia. Mutta kun suoritan sen, se ei muuta hakemistoa. Miksi?
Kommentit
Vastaa
 Ohjelmasi tekee juuri sen, mitä käsket tehdä: se muuttaa  -hakemiston itse  muotoon /home/enedil/projects/algo. Mutta kun se poistuu,  -kuoren ”s  -työhakemisto palautetaan. 
 Luulen mitä haluat saavuttaa on muuttaa pääprosessin työkansiota eli kuorta käyttämättä yksinkertaista cd. On olemassa  a method , mutta kuten kirjoittaja sanoo: älä tee sitä. 
Kommentit
- Nitpick, mutta komentotulkki ' työhakemistoa ei palauteta, koska se ei koskaan muuttunut. Kuori on yksinkertaisesti prosessi, aivan kuten ohjelma on. Jokaisella ohjelmalla on ' oma työhakemisto.
 - @Patrick, true. Käsitteellisesti tarkempi olisi työhakemistosi palauttaminen siinä tapauksessa, että prosessisi on " palautettu " (on aktiivinen etualalla).
 
Vastaus
Nykyinen työkansio on paikallinen prosessille. Joten mitä haluat, ei ole mahdollista.
Vastaa
 Voit myös käyttää CDPATH ympäristömuuttuja. Kuten selitettiin kohdassa man bash: 
 CDPATH The search path for the cd command. This is a colon-separated list of directories in which the shell looks for destination directories specified by the cd command. A sample value is ".:~:/usr". 
 Joten voit esimerkiksi lisätä tämän rivin ~/.profile: 
CDPATH=~/projects 
 Voit nyt suorittaa cd projects mistä tahansa hakemistosta ja siirtää ~/projects. 
Vastaa
 Voit tehdä tämän kuorelle käyttämällä  source  -komento (aliakseksi .). Se ajaa sovellusta nykyisen kuoren yhteydessä sen sijaan, että luo uuden kuoren kontekstin. Näin voit asettaa myös ympäristömuuttujia. Jos huomaat kaikki käynnistyskomentosarjat /etc/rc.d tai /etc/init.d, näet paljon komentosarjoja, jotka muut komentosarjat sisältävät komennossa 
. /etc/init.d/rcvars 
 . aiheuttaa komentosarjan /etc/init.d/rcvars niin, että kaikki muutos jatkuu nykyisessä ympäristössä. 
Kommentit
- Voit ' t ajaa C-ohjelmaa tällä tavalla vain komentosarja.
 
alias proj='cd ~/enedil/projects/algo'cd ~/projects/algo? Se on idea!