Tüm barındırma hizmetlerinde 15% tasarruf edin

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın: Skills Başlayın
Bölüm
Linux

Linux’ta Dizinleri Listeleme: Başlayanlar ve Sistem Yöneticileri için Kapsamlı Rehber

Linux’ta çalışmak genellikle geniş bir kütüphaneyi gezinmek gibi hissettiriyor. Raflar yerine dizinleriniz (klasörler) var ve kitaplar yerine dosyalarınız var. İster deneyimli bir sistem yöneticisi, ister bir geliştirici, ister başlayan meraklı bir başlangıç yapan biri olun, dosya sistemi navigasyonunun temellerini öğrenmek kaçınılmazdır. En kritik temel becerilerden biri, dizinleri verimli ve doğru bir şekilde nasıl listeleyeceğinizi bilmektir.

Bu rehber, Linux’ta dizinleri listelemenin her pratik yöntemini size gösterir, her bir yaklaşımın güçlü ve zayıf yönlerini açıklar ve hangi aracı ne zaman kullanacağınızı gösterir — komut dosyası ve üretim sunucusu ortamları da dahil olmak üzere.

Dizin Listelemenin Neden Önemli Olduğu

Kişisel bir bilgisayarda, ara sıra "Belgeler" veya "İndirilenler" klasörüne grafik arayüz aracılığıyla göz atabilirsiniz. Ancak bir Linux sunucusunda, dizinler gerçekleştireceğiniz hemen hemen her yönetim görevinin merkezinde yer alır:

  • Sistem yönetimi: /etc/, /var/log/ veya /usr/local/bin/ içinde neler olduğunu hızlı bir şekilde denetleyin.
  • Web barındırma: /var/www/ veya /home/ altındaki proje klasörlerini bulun ve yönetin.
  • Yazılım geliştirme: .git/ veya .venv/ gibi sürüm kontrol ve ortam dizinlerini tanımlayın.
  • Güvenlik denetimi: Sistemde tam olarak neyin yüklü, yapılandırılmış ve çalışır durumda olduğunu doğrulayın.
  • Otomasyon ve komut dosyası oluşturma: Shell betikleri ve cron işleri için kullanılmak üzere dizinleri güvenilir bir şekilde numaralandırın.

Dizinleri verimli bir şekilde listeleyemezseniz, özellikle grafik dosya yöneticisine geri dönüş seçeneği olmayan uzak VPS Hosting ortamında her zaman desoriente hissedersiniz.

Yöntem 1: ls Komutu — Hızlı ve Basit

ls komutu, bir dizinin içeriğini görüntülemek için varsayılan araçtır. Çoğu Linux kullanıcısının öğrendiği ilk komuttur ve bunun iyi bir nedeni vardır: hızlı, insan tarafından okunabilir ve her Unix benzeri sistemde mevcuttur.

Temel kullanım

ls

Bu, geçerli çalışma dizinindeki tüm gizli olmayan dosya ve dizinleri listeler.

Yalnızca dizinleri listele

ls -d */

Her bir parçanın yaptığı şey şudur:

  • -dls komutuna alt dizinlere inmemesini, bunun yerine dizin girdilerini listelemesini söyler.
  • */ — Geçerli klasördeki tüm dizinleri (ve dizinlere sembolik bağlantıları) eşleştiren bir shell glob deseni.

Dizinleri ayrıntılı bilgilerle listele

ls -ld */

-l eklemek, şunları içeren uzun bir listeleme biçimi verir:

  • Dosya izinleri
  • Sabit bağlantı sayısı
  • Sahip ve grup
  • Dosya boyutu
  • Son değiştirilme zaman damgası

Örnek çıktı:

drwxr-xr-x 3 root root 4096 Jun 10 14:22 backups/
drwxr-xr-x 5 www-data www-data 4096 Jun 12 09:15 html/
drwxr-xr-x 2 deploy deploy 4096 Jun 11 18:03 logs/

Sınırlama: Gizli dizinler hariç tutulur

*/ glob deseni, gizli dizinleri — adları bir nokta ile başlayanları (.) eşleştirmez; örneğin .git/, .ssh/ veya .config/. Bu, özellikle güvenliğe duyarlı ortamlarda önemli bir uyarıdır.

ls -d */ ne zaman kullanılır: Yalnızca görünür dizinlere ihtiyaç duyduğunuz ve komut dosyası güvenilirliği gerektirmeyen hızlı, etkileşimli kontroller için.

Yöntem 2: find Komutu — Güçlü ve Güvenilir

find komutu, dizinleri numaralandırmak için profesyonellerin tercih ettiği araçtır. ls‘den farklı olarak, programlı kullanım için tasarlanmıştır, özyinelemeli geçişi destekler, gizli dizinleri varsayılan olarak içerir ve farklı Linux dağıtımları ve yerel ayarlar arasında tutarlı davranır.

Tüm dizinleri özyinelemeli olarak listele

find . -type d
  • . — Geçerli dizinden başla.
  • -type d — Yalnızca dizin girdileriyle eşleş (dosyalar, sembolik bağlantılar veya diğer türler değil).

Bu, geçerli konumunuzun altındaki her derinlik seviyesindeki her dizini özyinelemeli olarak listeleyecektir.

Yalnızca üst düzey dizinleri listele (taşınabilir yöntem)

find . -mindepth 1 -maxdepth 1 -type d
  • -mindepth 1 — Geçerli dizinin kendisini (.) sonuçlardan hariç tutar.
  • -maxdepth 1 — Doğrudan alt öğelerin ötesine özyinelemeyi engeller.

Bu, yalnızca geçerli klasörün doğrudan alt dizinlerini listelemek için en taşınabilir ve güvenilir yöntemdir ve GNU/Linux, macOS ve BSD sistemlerinde aynı şekilde çalışır.

GNU/Linux sistemleri için alternatif

Dedicated Servers üzerinde çalışan olanlar da dahil olmak üzere çoğu modern Linux dağıtımında şunları da kullanabilirsiniz:

find . -maxdepth 1 -type d

Bunun . kendisini çıktıya dahil edeceğini unutmayın. Bunu temiz bir şekilde hariç tutmak için -mindepth 1 ile birlikte -maxdepth 1 kullanın.

Gizli dizinleri dahil et

find shell glob’larına dayanmadığı için, gizli dizinleri otomatik olarak içerir:

find . -mindepth 1 -maxdepth 1 -type d

Bu, .git/, .ssh/, .config/ ve diğer nokta ile başlayan dizinleri görünür olanlarla birlikte gösterecektir.

Betiklerde find kullan

find shell betikleme için doğru araçtır çünkü:

  • Boşluk ve özel karakterler içeren dosya adlarını güvenli bir şekilde işler.
  • Yerel ayar ayarlarından veya terminal renk yapılandırmalarından etkilenmez.
  • Tutarlı, ayrıştırılabilir çıktı üretir.

Örnek: Tüm üst düzey dizinler üzerinde döngü

find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
    echo "Processing: $dir"
done

find ne zaman kullanılır: Gizli dizinler dahil etmeniz, özyinelemeli sonuçlara ihtiyacınız olduğunda veya betik oluşturma ve otomasyon için güvenilir çıktıya ihtiyacınız olduğunda.

Yöntem 3: tree Komutu — Görsel Dizin Haritaları

tree komutu, dizin yapınızın görsel, hiyerarşik bir haritasını oluşturur. Tüm dağıtımlarda varsayılan olarak yüklü değildir ancak belgelendirme, onboarding ve karmaşık proje düzenlerini anlamak için son derece kullanışlıdır.

tree Yükleyin

Debian/Ubuntu:

sudo apt install tree

CentOS/RHEL/AlmaLinux:

sudo yum install tree

Yalnızca dizinleri listeleyin (dosya yok)

tree -d

Çıktıyı aşırı yüklemekten kaçınmak için derinliği sınırlayın

tree -d -L 2
  • -d — Yalnızca dizinleri göster.
  • -L 2 — Görüntüyü 2 seviye derinliğe sınırla.

Örnek çıktı:

.
├── backups
│   └── daily
├── html
│   ├── assets
│   └── uploads
└── logs

Gizli dizinleri dahil et

tree -d -a

tree ne zaman kullanılır: Proje yapılarını görselleştirirken, belgelendirme yazarken veya ilk kez bilinmeyen bir sunucu düzenini keşfederken.

Method 4: Neden ls -l | grep "^d" Kullanmaktan Kaçınmalısınız

Bazen çevrimiçi olarak bu desen önerilir:

ls -l | grep "^d"

Fikir, ls komutunun uzun listeleme çıktısını filtrelemek ve yalnızca d ile başlayan satırları göstermektir — bu bir dizini gösterir. Bu akıllıca görünse de, temelde kırılgan bir yöntemdir ve herhangi bir ciddi bağlamda kaçınılmalıdır:

SorunAçıklama
Yerel ayar duyarlılığıBazı yerel ayarlar veya terminal yapılandırmaları ls -l komutunun çıktı biçimini değiştirir ve grep desenini bozar.
Renk kodlarıEğer ls ANSI renk kaçış kodları çıktısı verirse, ^d deseni eşleşmeyebilir.
Gizli dizinlerGösterilmez, tıpkı ls -d */ gibi.
Sembolik bağlantılarDizinlere işaret eden sembolik bağlantılar l olarak gösterilir, d değil, bu nedenle sessizce hariç tutulurlar.
Betik güvenilirliğils çıktısını betiklerde ayrıştırmak, shell betik yazma en iyi uygulamalarında açıkça önerilmez.

Bunun yerine find kullanın. Bu görev için özel olarak tasarlanmıştır ve yukarıdaki tüm sorunlardan kaçınır.

Hızlı Referans: Doğru Yöntemi Seçme

AmaçEn İyi Komut
Hızlı etkileşimli kontrol (yalnızca görünür dizinler)ls -d */
İzinlerle ayrıntılı listelemels -ld */
Gizli olanlar dahil üst düzey dizinlerfind . -mindepth 1 -maxdepth 1 -type d
Tüm dizinler özyinelemeli olarakfind . -type d
Görsel ağaç yapısıtree -d
Bir shell betiğinde kullanımfind . -mindepth 1 -maxdepth 1 -type d

Üretim Sunucu Ortamları için En İyi Uygulamalar

Canlı bir sunucuda çalışırken — ister bir Paylaşımlı Web Hosting hesabı ister tamamen yönetilen bir VPS olsun — bu ilkeleri göz önünde bulundurun:

  1. Güvenlik denetimlerinde her zaman gizli dizinleri kontrol edin. .ssh/, .git/, .env/ ve .config/ gibi dizinler genellikle hassas kimlik bilgileri, anahtarlar ve yapılandırma dosyaları içerir. Bunların çıktınızda görünmesini sağlamak için find ile -mindepth 1 kullanın.
  1. Tüm betiklerde find kullanın, asla ls kullanmayın. ls çıktısını ayrıştırmak, shell betiklemesinde iyi bilinen bir anti-paterndir. find komutu deterministik, yerel ayardan bağımsız ve kenar durumlarını zarif bir şekilde işler.
  1. Toplu işlemler için find ile -exec birleştirin. Örneğin, dizin boyutlarını listelemek için:
   find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;
  1. Ekleme sırasında tree -d -L 2 kullanın. Bir sunucuya ilk kez SSH ile bağlandığınızda, /var/www/ veya /home/ adresinden hızlı bir tree -d -L 2 size anında yapısal bir genel bakış sağlar.
  1. İzinleri dikkatli bir şekilde kısıtlayın. Hangi dizinlerin var olduğunu bilmek resmin sadece bir parçasıdır. Yanlış yapılandırılmış dünya tarafından yazılabilir dizinleri yakalamak için ls -ld */ ile dizin izinlerini düzenli olarak denetleyin.

Pratik Örnek: Web Sunucusu Dizinini Denetleme

Yeni bir uygulamayı bir Linux VPS’ye dağıttığınızı varsayalım. İşte bu kılavuzda ele alınan komutları birleştiren pratik bir iş akışı:

# Navigate to the web root
cd /var/www/

# Quick visual check of top-level directories
ls -ld */

# Full audit including hidden directories
find . -mindepth 1 -maxdepth 1 -type d

# Visual map of the project structure (2 levels deep)
tree -d -L 2

# Check disk usage per directory
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;

Bu iş akışı bir dakikadan az sürer ve web sunucunuzun dizin düzeni, izinleri ve disk tüketimi hakkında tam bir resim verir — bir cPanel’li VPS veya özel bir Linux yığını yöneten herhangi bir yönetici için gerekli bilgiler.

Sonuç

Dizinleri listelemek, en temel Linux becerilerinden biridir, ancak seçtiğiniz yöntem çoğu başlangıççının fark ettiğinden daha önemlidir. İşte temel çıkarımların bir özeti:

  • ls -d */ hızlı, etkileşimli kontroller için mükemmeldir — ancak gizli dizinleri yok sayar ve komut dosyası oluşturma için uygun değildir.
  • find . -mindepth 1 -maxdepth 1 -type d güvenilir, taşınabilir, komut dosyası açısından güvenli dizin listesi oluşturma ve gizli girişleri içeren altın standarttır.
  • tree -d karmaşık yapıları görselleştirmek ve bunları başkalarına iletmek için çok değerlidir.
  • ls -l | grep "^d" kullanmaktan kaçının — kırılgan, yerel ayara bağımlı ve find üzerinde hiçbir avantajı yoktur.

Dedicated Servers ortamında yapılandırmaları yönetiyor, web uygulamaları dağıtıyor veya ilk kez yeni bir Linux makinesini keşfediyor olsanız da, bu komutlarda uzmanlaşmak size zaman kazandıracak, maliyetli hataları önleyecek ve herhangi bir dosya sisteminde kesinlikle gezinme konusunda size güven verecektir.

Komut satırı bir engel değildir — bu bir süper güçtür. Ve bu, tam olarak nerede olduğunuzu ve etrafınızda neler olduğunu bilmekle başlar.