---
title: 'Dizin Hiyerarşisi'
source: 'https://academia.sh/tr/kurslar/linuxa-giris/dizin-hiyerarsisi'
course: "Linux'a Giriş"
language: tr
updated: '2026-08-17T18:09:56+00:00'
license: 'CC BY-SA 4.0'
---

# Dizin Hiyerarşisi

Tek köklü dosya ağacı, takma noktaları, standart dizin yerleşimi ve yolların adım adım çözümlenmesi; kurs boyunca kullanılacak proje ağacının kurulması.

Komutlar dosyalar üzerinde çalışır; dosyalar da rastgele yerlerde durmaz. Unix
sistemlerinde her dosyanın adresi, tek bir ağacın kökünden başlayan bir yoldur ve ağacın
her dalının belirli bir anlamı vardır.

Bu ders yerleşimin mantığını kurar, bir yolun çekirdek tarafından nasıl çözümlendiğini
açıklar ve kurs boyunca üzerinde çalışılacak `proje/` ağacını oluşturur.

## Tek Kök

Dosya sistemi tek bir ağaçtır ve kökü `/` ile gösterilir. Sürücü harfi yoktur; ikinci bir
disk, ikinci bir ağaç açmaz. Bunun yerine diskler ağacın bir dalına **takılır (mount)**.

Takma, bir depolama aygıtının içeriğini var olan bir dizin üzerinde görünür kılmaktır.
Takıldıktan sonra o dizine giren bir program, farklı bir aygıta eriştiğini fark etmez;
yol yine aynı ağacın parçasıdır. Aygıt sınırının nerede olduğu, yalnızca aygıtlar arası
işlem yapılırken önem kazanır — sabit bağlantılar ve taşıma işlemleri dersinde bu sınırın
neyi engellediği görülecektir.

Kökün üstü yoktur. Kök dizinde `..` yine kökü gösterir:

```
$ cd /
$ pwd
/
$ cd ..
$ pwd
/
```

Bu, hata değil tanımdır: ağacın en üstünde bir üst yoktur ve `..` kendine döner. Yol
çözümlemesi bu sayede kökün dışına çıkamaz.

## Standart Yerleşim

Kök altındaki dizinlerin adları ve işlevleri bir yerleşim standardıyla belirlenmiştir.
Standart, hangi türden dosyanın nereye konacağını söyler; böylece bir yönetici tanımadığı
bir sistemde de aradığını nerede bulacağını bilir.

| Dizin | İçerik |
|---|---|
| `/bin`, `/usr/bin` | Tüm kullanıcıların çalıştırdığı temel komutlar |
| `/sbin`, `/usr/sbin` | Sistem yönetimi komutları |
| `/lib`, `/usr/lib` | Paylaşılan kütüphaneler |
| `/etc` | Sisteme özgü yapılandırma dosyaları |
| `/home` | Kullanıcı ev dizinleri |
| `/root` | Süper kullanıcının ev dizini |
| `/var` | Boyutu değişen veriler: kütükler, kuyruklar, önbellekler |
| `/tmp` | Geçici dosyalar; yeniden başlatmada silinebilir |
| `/opt` | Paket yöneticisi dışında kurulan yazılımlar |
| `/dev` | Aygıt düğümleri |
| `/proc`, `/sys` | Çekirdek durumunu dosya olarak sunan sanal dosya sistemleri |
| `/boot` | Çekirdek görüntüsü ve önyükleyici dosyaları |
| `/mnt`, `/media` | Geçici takma noktaları |

Yerleşimin arkasında iki ayrım vardır. Birincisi **değişen ile değişmeyen** ayrımıdır:
`/usr` altındaki içerik yalnızca yazılım kurulunca değişir, `/var` altındaki içerik sistem
çalışırken sürekli değişir. İkincisi **paylaşılabilir ile yerel** ayrımıdır: `/usr` birden
çok makinede ortak kullanılabilir, `/etc` o makineye özgüdür. Bu iki ayrım, dizinlerin
ayrı bölümlere yerleştirilmesini ve farklı yedekleme politikaları uygulanmasını mümkün
kılar.

Standart bir yerleşim, tarihsel nedenlerle bölünmüş bazı dalları tek noktada birleştirir:

```
$ ls -l /bin /lib
lrwxrwxrwx 1 root root 7 Apr 22  2024 /bin -> usr/bin
lrwxrwxrwx 1 root root 7 Apr 22  2024 /lib -> usr/lib
```

Bu sistemde `/bin` ayrı bir dizin değil, `/usr/bin`'e işaret eden bir bağlantıdır.
`/bin/ls` ile `/usr/bin/ls` aynı dosyadır. Eski yolların çalışmaya devam etmesi, geriye
dönük uyumluluk içindir.

## Mutlak ve Göreli Yol

**Mutlak yol**, kökten başlar ve `/` karakteriyle başlayan bir dizedir:
`/home/ogrenci/proje/veri`. Nerede olunursa olunsun aynı dosyayı gösterir.

**Göreli yol**, bulunulan dizinden başlar ve `/` ile başlamaz: `veri/ham`. Hangi dosyayı
gösterdiği, o anki **çalışma dizinine (working directory)** bağlıdır.

Çalışma dizini, kabuğun değil sürecin bir özelliğidir; her sürecin kendi çalışma dizini
vardır ve çocuk süreçler onu miras alır. `pwd` komutu bu değeri yazdırır.

Üç özel ad her dizinde geçerlidir:

- `.` — bulunulan dizinin kendisi
- `..` — üst dizin
- `~` — ev dizini; bu bir dizin adı değil, kabuğun yaptığı bir açılımdır

`.` ve `..` gerçek dizin girdileridir; çekirdek onları her dizinde tutar. `~` ise
kabuğa aittir ve komuta ulaşmadan önce ev dizininin mutlak yoluna çevrilir.

## Yol Nasıl Çözümlenir

Bir yol, çekirdek tarafından **bileşen bileşen** çözümlenir. `/home/ogrenci/proje` yolu
için sıra şudur: kök dizin açılır, içinde `home` adı aranır, bulunan dizin açılır, içinde
`ogrenci` aranır, o dizin açılır, içinde `proje` aranır.

Bu adım adım yürüyüşün üç sonucu vardır ve üçü de kursun ilerleyen derslerinde tekrar
karşımıza çıkar:

**Her adım bir arama gerektirir.** Yol ne kadar derinse o kadar çok dizin okunur.

**Her ara dizinde geçiş izni aranır.** Yolun sonundaki dosyaya erişmek için, yol
üzerindeki her dizinde çalıştırma izni gerekir. İzin bitleri dersinde bu, dizinler için
`x` bitinin neden "geçiş hakkı" anlamına geldiğini açıklayacaktır.

**Ara bileşenler bağlantı olabilir.** Yol üzerinde bir sembolik bağla karşılaşılırsa
çözümleme hedeften devam eder. `/bin/ls` yolunun `/usr/bin/ls` dosyasına varması bu
yüzdendir.

Göreli yol da aynı biçimde çözümlenir; tek farkı, kökten değil çalışma dizininden
başlamasıdır:

```
$ cd /home/ogrenci/proje/veri
$ pwd
/home/ogrenci/proje/veri
$ cd -
/
$ pwd
/
```

`cd -` bir önceki dizine döner ve döndüğü dizini yazdırır. Bu, iki dizin arasında sık
geçiş yaparken kullanılan bir kısayoldur.

## Gizli Dosyalar

Adı nokta ile başlayan dosyalar, listelemede varsayılan olarak gösterilmez:

```
$ ls
proje
$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile  proje
```

Bu bir güvenlik özelliği değil, bir görüntüleme geleneğidir. Çekirdek açısından nokta ile
başlayan adın hiçbir ayrıcalığı yoktur; yalnızca listeleme araçları onları varsayılan
olarak atlar. Gelenek, kullanıcı yapılandırma dosyalarının ev dizinini
doldurmamasını sağlar.

`ls -a` çıktısındaki ilk iki girdi `.` ve `..`'dır; her dizinde bulunan gerçek girdiler
oldukları burada görünür.

## Proje Ağacının Kurulması

Kurs boyunca kullanılacak ağaç ev dizini altında kurulur. Ölçüm verisi, işlenmiş çıktı,
betik, belge ve arşiv ayrı dallara yerleştirilir — kök altındaki yerleşimin küçük ölçekte
yinelenmesi:

```
$ mkdir -p proje/veri/ham proje/veri/islenmis
$ mkdir -p proje/betik proje/belge proje/arsiv
$ find proje -type d | sort
proje
proje/arsiv
proje/belge
proje/betik
proje/veri
proje/veri/ham
proje/veri/islenmis
```

`mkdir` normalde yalnızca tek düzey dizin oluşturur ve üst dizini yoksa hata verir. `-p`
seçeneği eksik ara dizinleri de oluşturur ve dizin zaten varsa hata vermez. İkinci
özellik, aynı komutun yeniden çalıştırılabilir olmasını sağlar.

`find` komutu bir ağacı özyinelemeli olarak dolaşır; `-type d` yalnızca dizinleri seçer.
Çıktı sıralı değildir — dosya sistemi girdileri sırasız döndürebilir — bu yüzden `sort`
ile sıralanmıştır.

Ağacın anlamı şudur: `veri/ham` dışarıdan gelen ve **değiştirilmeyecek** ölçüm dosyalarını,
`veri/islenmis` bunlardan türetilen çıktıları tutar. `betik` işlemi yapan programları,
`belge` açıklamaları, `arsiv` paketlenmiş sürümleri tutar. Ham veriyi ayrı ve dokunulmaz
tutmak, silme dersinde geri alınamazlık tartışmasının merkezinde olacaktır.

## Özet

- Dosya sistemi tek köklüdür; ek diskler yeni bir ağaç açmaz, var olan bir dizine takılır.
- Kök altındaki yerleşim standarttır ve iki ayrıma dayanır: değişen/değişmeyen ve
  paylaşılabilir/yerel.
- Mutlak yol kökten, göreli yol çalışma dizininden başlar; çalışma dizini sürecin bir
  özelliğidir.
- Yol bileşen bileşen çözümlenir; her ara dizinde geçiş izni aranır ve ara bileşenler
  bağlantı olabilir.
- Nokta ile başlayan adların gizliliği bir listeleme geleneğidir, çekirdek düzeyinde bir
  ayrıcalık değildir.
- `mkdir -p` eksik ara dizinleri oluşturur ve var olan dizinde hata vermez.

## Sonraki Adım

Ağaç kuruldu, ancak komutların seçenekleri ve davranışları henüz ezberle öğrenilmek
durumunda. Sistemin kendisi bunu gereksiz kılar: her komutun kendi belgesi sistemde
kuruludur ve belgeler numaralı bölümlere ayrılmış tutarlı bir yapı izler. Sonraki ders bu
belgelerin nasıl okunacağını ve aynı adın farklı bölümlerde neden farklı şeyler
anlatabildiğini gösterir.
