Bash script yazarken, dosyalar üzerinde çeşitli işlemler yapmak oldukça yaygın bir gereksinimdir. Bu işlemler arasında dosya oluşturma, dosyaların varlığını kontrol etme, dosya okuma ve yazma gibi görevler yer alır. Bu makalede, Bash script ile dosya işlemlerini nasıl gerçekleştirebileceğinizi ve dosya kontrolleriyle nasıl çalışabileceğinizi ele alacağız.

Dosya ve Dizin Varlığını Kontrol Etme

Bash script yazarken, belirli bir dosyanın veya dizinin var olup olmadığını kontrol etmek önemlidir. Bu tür kontroller, özellikle dosya oluşturulması, yedekleme yapılması ya da bir dosya üzerinde değişiklik yapılmadan önce kullanılır.

-f, -d, -e Parametreleri ile Kontroller
  • -f: Belirtilen yolun geçerli bir dosya olup olmadığını kontrol eder.
  • -d: Belirtilen yolun geçerli bir dizin olup olmadığını kontrol eder.
  • -e: Dosya ya da dizinin var olup olmadığını kontrol eder.
dosya="ornek.txt"

# Dosyanın var olup olmadığını kontrol etme
if [ -f "$dosya" ]; then
    echo "$dosya mevcut."
else
    echo "$dosya bulunamadı."
fi

# Dizinin varlığını kontrol etme
dizin="ornek_klasor"
if [ -d "$dizin" ]; then
    echo "$dizin dizini mevcut."
else
    echo "$dizin dizini bulunamadı."
fi

Bu örnek, belirli bir dosyanın ve dizinin varlığını kontrol eder ve duruma göre bir mesaj yazdırır.

Dosya Okuma ve Yazma İşlemleri

Dosyalar üzerinde okuma ve yazma işlemleri yaparken, Bash’teki cat, echo, >, >> gibi komutlar kullanılır.

Dosyaya Yazma (> ve >>)

Dosyaya veri yazmak için > ve >> operatörleri kullanılır:

  • >: Dosyayı baştan yazar. Eğer dosya daha önceden mevcutsa, var olan içeriği siler ve yerine yeni içeriği yazar.
  • >>: Dosyanın sonuna ekleme yapar. Mevcut içerik korunur.
# Yeni bir dosya oluştur ve içerik yaz
echo "Bu bir deneme dosyasıdır." > deneme.txt

# Dosyanın sonuna ekleme yap
echo "Dosyanın sonuna eklenen içerik." >> deneme.txt

Bu kodlar, deneme.txt adında bir dosya oluşturur ve dosyanın içine belirtilen verileri yazar.

Dosya Okuma (cat)

Dosyanın içeriğini okumak için cat komutu kullanılır.

# Dosyanın içeriğini oku ve ekrana yazdır
cat deneme.txt

Bu örnek, deneme.txt dosyasının içeriğini ekrana yazdırır.

Dosya İçeriğinde Arama (grep Komutu)

Bash scriptlerde dosya içeriğinde belirli bir metni aramak için grep komutu kullanılır. Bu komut, dosya içinde belirli bir ifadeyi arar ve bulduğu satırları ekrana yazdırır.

# Dosya içeriğinde "deneme" kelimesini ara
grep "deneme" deneme.txt

Bu komut, deneme.txt dosyasında deneme kelimesini içeren satırları bulur ve ekrana yazdırır.

grep ile Gelişmiş Kullanım
  • Tüm dosyada bir kelimeyi aramak:
grep "kelime" *.txt

Bu komut, geçerli dizindeki tüm .txt dosyalarında “kelime” ifadesini arar.

Büyük/küçük harf duyarsız arama:

grep -i "kelime" dosya.txt
  • -i parametresi, büyük/küçük harf duyarlılığını kaldırarak arama yapar.

Dosya ve Dizin İşlemlerini Kombine Etme

Çoğu zaman, bir script yazarken dosya ve dizin işlemlerini birlikte kullanmanız gerekebilir. Örneğin, belirli bir dosya varsa yedekleme yapmak veya belirli bir dizin varsa yeni bir dosya oluşturmak gibi işlemler yapabilirsiniz.

Örnek: Yedekleme Script’i

Belirli bir dosyanın yedeğini almak için şu şekilde bir script oluşturabilirsiniz:

dosya="ornek.txt"
yedek_dizin="yedekler"

# Yedek dizininin var olup olmadığını kontrol et, yoksa oluştur
if [ ! -d "$yedek_dizin" ]; then
    mkdir "$yedek_dizin"
    echo "$yedek_dizin dizini oluşturuldu."
fi

# Dosyanın varlığını kontrol et ve yedeğini al
if [ -f "$dosya" ]; then
    cp "$dosya" "$yedek_dizin/${dosya}_$(date +%F).bak"
    echo "$dosya dosyası yedeklendi."
else
    echo "$dosya dosyası bulunamadı."
fi

Bu script, ornek.txt dosyasının bir yedeğini tarih bilgisiyle birlikte yedekler dizinine kaydeder. Eğer yedekler dizini daha önce mevcut değilse, script bu dizini otomatik olarak oluşturur.

Dosya İzinleri ve Kontroller

Dosya işlemlerinde izinler de önemli bir konudur. Bir dosyayı okuyabilmek veya üzerinde değişiklik yapabilmek için gerekli izinlere sahip olup olmadığınızı kontrol edebilirsiniz.

  • Dosyanın okunabilir olup olmadığını kontrol etme (-r):
if [ -r "$dosya" ]; then
    echo "$dosya dosyası okunabilir."
else
    echo "$dosya dosyasını okumaya izniniz yok."
fi

Dosyanın yazılabilir olup olmadığını kontrol etme (-w):

if [ -w "$dosya" ]; then
    echo "$dosya dosyası yazılabilir."
else
    echo "$dosya dosyasını yazmaya izniniz yok."
fi

Bu izin kontrolleri, bir dosya üzerinde işlem yapmadan önce izinlerin kontrol edilmesine yardımcı olur ve hata mesajlarını önler.

Bash scriptlerinde dosya işlemleri oldukça sık karşılaşılan bir ihtiyaçtır. Dosyaların ve dizinlerin varlığını kontrol etmek (-f, -d, -e), dosya içeriğini okumak (cat), dosyalara veri yazmak (>, >>) ve dosya içeriğinde arama yapmak (grep) gibi işlemler günlük script yazma ihtiyaçlarında büyük önem taşır. Dosyalar üzerinde çalışırken bu kontroller ve işlemler, scriptlerinizin güvenli ve esnek olmasını sağlar.

Bu makalede, Bash scriptlerde dosya işlemleri ve kontrollerini nasıl gerçekleştirebileceğinizi gördük. Dosya işlemleri ve kontrolleri sayesinde daha dinamik ve kullanıcı etkileşimli scriptler yazabilir ve dosyalarla kolayca çalışabilirsiniz. Bu konuları kullanarak, kendi otomasyon scriptlerinizi yazabilir ve dosyalar üzerinde etkili bir şekilde çalışabilirsiniz.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme