Kavramsal seviye
Kabuğunuzdan bir işlem başlattığınızda, işlemin geçerli çalışma dizini kabuğunuzun geçerli çalışma diziniyle aynıdır. Kabuk bağlamında, geçerli çalışma dizini şu anda "bulunduğunuz" konumdur.
Herhangi bir işlemin geçerli çalışma dizini göreli yolları yorumlamak için kullanılır. Kullandığınız kabuğun Geçerli çalışma dizini olsaydı Örneğin, /home/rene
ve kaçtın ls ..
kabuğundan, sürecin Geçerli çalışma dizini, /home/rene
, kararlılığının için kullanılacak ..
üzere /home
.
Sisteminizde çalışan tüm işlemlerin geçerli çalışma dizinlerini lsof | grep '\scwd\s'
şu şekilde görebilirsiniz (diğer kullanıcıların işlemlerini görmek için muhtemelen root olmanız gerektiğini unutmayın.) Bu size mevcut çalışma dizinlerinin sisteminizde çalışan işlemler.
Program seviyesi
Kabuğun geçerli çalışma dizini, kabuk yerleşikleriyle pwd
ve cd
sırasıyla değiştirdiğiniz ve değiştirdiğiniz dizindir . Bu komutlar , kabuğunuzun geçerli çalışma dizini ile çalışan getcwd
ve böyle sistem çağrılarını çağırır chdir
.
Kullanılması bash
örnek olarak, cd
dahili sonunda bu çizgiyi çalıştırır:
if (chdir (nolinks ? newdir : tdir) == 0)
ve pwd
yerleşik olarak sonunda bu satırı çalıştırır:
the_current_working_directory = getcwd (0, PATH_MAX);
Kabuk, şu andaki çalışma direktörünün kullanımına uygun bir örnektir; aynı sistem çağrıları diğer programlar tarafından da kullanılır. Bir program geçerli çalışma dizinini olarak değiştirebilir /usr
ve programın kullandığı göreli yollar dizinden başlayacaktır /usr
,
Çekirdek seviyesi
Bir işlemin geçerli çalışma dizini çekirdek tarafından saklanır. Linux bunu depolayan pwd
bir üyesi fs_struct
tarafından sivri fs
bir üyesi task_struct
. pwd
Üyesi bir olduğunu path
monte hakkındaki bilgilere işaret yapı, ( vfsmount
dosya sisteminde) ve dizinin konum ( dentry
). Her sürecin bir task_struct
ilişkisi vardır.
chdir
Ve getcwd
sistem çağrıları değiştirmek ve bilgi almak pwd
.