Ana içeriğe atla

Linux Shell: Bir dosyanın varlığını kontrol etme


Genel olarak herhangi bir yazılım yaparken olduğu gibi, Linux Shell'de de komut yazarken veya yeni bir script dosyası oluşturuken bir dosyanın var olup olmadığını kontrol etmemiz gereken durumlar sıkça karşımıza çıkar. Hele de bazı işlemleri otomatikleştirmeye çalışıyorsak bu kontroller çok önemli hale gelir.

Linux Shell'de aşağıdaki kod örneği ile bir dosyanın varlığını kolayca kontrol edebiliriz.

if [ -f test.txt ]   # Dosya var mı? 
then 
    echo "Dosya var."   # Var ise bu satırı yazdır.
else 
    echo "Dosya yok!"  # Yoksa bu satırı yazdır.
fi  

Temel yapı bu kadar basit. Dosya adını bir değişkenden okumak istersek şu şekilde küçük bir değişiklik yapmamız gerekir.

dosya_adi="test.txt"
if [ -f $dosya_adi ]   # Dosya var mı? 
then 
    echo "Dosya var."   # Var ise bu satırı yazdır.
else 
    echo "Dosya yok!"  # Yoksa bu satırı yazdır.
fi  

Burada yazımda dikkat etmemiz gereken noktalardan biri "if" koşulunu yazarken köşeli parantezler arasındaki boşluk zorunluluğudur. Yani

    # Doğru yazım
    if [  -f test.txt  ]  # İlk köşeli parantezden sonra ve ikinciden önce boşluk olmalı. Dikkat! 

 yerine

    # Yanlış yazım
    if [-f test.txt]  # Köşeli parantezler arasında boşluk yok. Hata verecektir!

yazarsak hata verecektir. "Aynı şeyi yazdım ama hata veriyor" şeklindeki hayıflanmalarla saç baş yoldurup insanı çileden çıkarabilir. Dikkat!

Tabi bu örnekte sadece "echo" komutu ile ekrana dosyanın var olup olmadığını yazdırdık. Onun yerine ihtiyaca göre istediğimiz komutları sıralayabiliriz. Örneğin dosya varsa içeriğini okuyabiliriz, dosyayı başka yere kopyalayabiliriz, adını değiştirebiliriz veya daha karmaşık işler yapabiliriz. Dosya yoksa da uyarı verdirip işlemi sonlandırabiliriz. 






Yorumlar

Bu blogdaki popüler yayınlar

Python: Baska Dosyadan Fonksiyon "import" Etme

Yazılım yaparken calistigimiz dosyada baska dosyada tanımlı fonksiyonlari kullanmak icin o dosyadaki fonsiyonlari bir sekilde mevcut dosyaya tanıtmamız gerekir. Bircok yazılım dilinde olduğu gibi Python'da da bunun icin kullanılan anahtar kelime import 'tur. Python kütüphanelerindeki fonksiyonlari dogrudan import edebilirken kendi yazdigimiz farklı dosyalardaki fonsiyonlari import etmek icin biraz daha dikkatli olmamız gerekir. Eğer calistigimiz dosya ile ilgili fonksiyonu içeren diger dosya ayni dizinde ise dosya ismi ve fonksiyon ismini kullanarak import'u kullanabiliriz. Ornek : dosya1.py ve dosya2.py ayni dizinde olsun. dosya1.py icinde fonksiyon1 tanımı olsun. Bunu ayni dizindeki dosya2.py icinde kullanmak icin su sekilde import ederiz: from dosya1 import fonksiyon1 Eger dosyaların dizinleri farklı ise, dizini pyhton'a tanıtmamız gerekir. Bunun icin ilgili dizinde boş __init__.py isimli dosya oluşturmak yeterlidir. Evet bu kadar basit. __i

python: Resim Dosyası Okuma ve Yeniden Boyutlandirma (Resize)

python ile resim dosyalarını okumak ve yeniden boyutlandirmak(resize) oldukça kolay. Asagidaki kod parçası, PIL paketini kullanarak verilen resim dosyasını okuyup resim yüksekliği 480 piksel olacak sekilde yeniden boyutlandiriyor. Resmin orijinal en/boy oranı (aspect ratio) korunuyor. Yani yüksekliği 480 olacak sekilde eni orantılı olarak boyutlandiriliyor. Ilgili degerleri (hedef_yukseklik ve dosya adi) değiştirerek resimleri istediğiniz boyutta olacak sekilde boyutlandirabilirsiniz. import PIL from PIL import Image hedef_yukseklik = 480 resim_dosya_adi = "test.jpg" print "Dosya okunuyor... " resim = Image . open ( resim_dosya_adi ) print "Orijinal Resim Boyutu: " , resim . size # Hedef yukseklige orantili olarak hedef genisligi hesapla yeniboyut_orani = ( hedef_yukseklik / float ( resim . size [ 1 ])) hedef_genislik = int (( float ( resim . size [ 0 ])* float ( yeniboyut_orani ))) #Yeniden Boyutlandir resim = resim . resize (( hedef_geni