Bash Betiklerinde basename Komutunu Kullanma

popüler
SUNUCU KURULUMUNUZU YÜKSELTİN! AVA UYGULA VE BAŞLATIN %15 İNDİRİM
PROMO KULLANIN:

Bash Scriptlerinde basename Komutunu Kullanma

Bash scripting’te en yaygın görevlerden biri dosya yollarını manipüle etmektir—özellikle tam bir yoldan sadece dosya adını çıkarmak istediğinizde. İşte burada basename komutu devreye giriyor. Görünüşte basit olmasına rağmen, basename doğru kullanıldığında daha karmaşık scriptlerde, otomasyon araçlarında, hosting hizmetlerinde ve CI/CD ortamlarında güçlü kullanım senaryolarına sahiptir.

basename Nedir?

basename komutu dizin yolunu kaldırır ve isteğe bağlı olarak bir dosya uzantısını siler, geriye sadece temel adı (bir dosya yolunun son bileşeni) bırakır.

🔧 Temel Söz Dizimi:

✅ Basit Örnekler:

Scriptlerde Neden basename Kullanmalıyız?

İşte gerçek dünya scripting ihtiyaçlarına dair birkaç örnek:

Bash Scriptlerinde Pratik Kullanım Senaryoları

📁 1. Günlük Kaydı ile Dosyalar Üzerinde Döngü

Bu script .log dosyaları üzerinde döngü yapar, uzantısız adını çıkarır ve her eylemi kaydeder. basename dosya adlarıyla karmaşık dize dilimleme olmadan basit bir şekilde başa çıkmayı sağlar.

📂 2. Dinamik Dosya Yolları için basename Kullanma

Diyelim ki kullanıcı girdisinden veya başka bir süreçten tam yollar alıyorsunuz:

basename kullanmak, dinamik dosya yollarıyla çalışırken esneklik sağlar, özellikle günlükler, yapılandırma dosyaları ve yedeklerin farklı dizinlerde bulunabileceği bir Linux VPS ortamında. Bu, scriptinizi sağlam hale getirir, tam bir yol olan /var/log/syslog veya ./config.txt gibi bir göreli dosya geçilse bile.

🧪 3. basename’i dirname ile Birleştirme

Yol bileşenlerini izole etmek için birlikte kullanın:

basename ile Dosya Uzantılarını Kaldırma

Bilinen uzantıları kaldırmak istiyorsanız:

⚠️ Not: Bu yalnızca eklenti tam olarak eşleşiyorsa çalışır. Yani .txt çalışır, ancak .TXT veya .tar.gz çalışmaz, aksi takdirde açıkça belirtilmedikçe.

Birden fazla uzantı için, basename’i diğer araçlarla birleştirin:

Veya:

basename vs Parametre Genişletme

While basename sezgisel olsa da, bir alt süreç oluşturur. Performans açısından kritik scriptler veya büyük döngüler için saf Bash alternatiflerini tercih edin:

Bash Yerel Eşdeğeri:

Yerel Bash ile uzantıyı kaldırın: