Bash'de bir Dosya olup olmadığı nasıl kontrol edilir

How Check If File Exists Bash



Linux'ta bir dosyanın kullanılabilirliğini kontrol etmenin birkaç yolu vardır. Bash komut dosyası oluşturmadaki test komutu, bir dosyanın varlığını kontrol etmenin temel yaklaşımlarından biridir.
Bu kılavuzun odak noktası, sisteminizde bir dosyanın varlığını bash komut dosyası aracılığıyla tartışmaktır:

Bash komut dosyası kullanarak dosya varlığı nasıl kontrol edilir:

1) Terminalde dosya adını girerek:







Öncelikle bir bash betik dosyası oluşturmamız gerekiyor, aşağıda belirtilen komutu kullanın:



$dokunmatestfile.sh

Oluşturduğum dosyanın adı testfile.sh, .sh uzantısı kabuk komut dosyasını gösterir:







testfile.sh dosyasını herhangi bir metin düzenleyicide açın. Ardından betiği yazın, kaydet'e basarak kaydedin.

Bir yol, terminalde kullanıcıdan bir dosya adı isteyerek bir dosya bulmaktır.



Kullanmak -F Dosyanın varlığını kontrol etmek için.

Aşağıdaki komut dosyasını yazın:

#!/bin/bash
dışarı attı 'Dosya adınızı girin'
okumanyeni dosya1
Eğer [ -F '$yenidosya1' ]
sonra
dışarı attı 'Dosya bulundu'
Başka
dışarı attı 'Dosya bulunamadı'
olmak

Terminale geri dönün ve çıktıyı yazdırmak için dosyayı çalıştırın:

./dosyaadi.sh

İzin reddedildi mesajı terminalde görüntülenecektir.

Aşağıda belirtilen komutu yürüterek yürütülebilir hale getirin:

$chmod+ x test dosyası.sh

Dosya adını girin, çıktıyı yazdıracaktır:

2) Komut dosyasını yazarken dosya adını girerek:
Komut dosyasını yazarken dosya adını vererek bir dosyayı bulmanın başka bir yolu. Dosyanın kullanılabilirliğini kontrol etmenin üç yolu var. Birincisi test komutunu kullanıyor, ikincisi ise köşeli parantez içindeki bir ifadeyle kullanıyor ve üçüncüsü de aşağıda belirtildiği gibi çift köşeli parantezli if ancak:

  1. İFADE testi.
  2. eğer [ İFADE ]
  3. eğer [[ İFADE ]]

Örneklerle anlayalım:

1) test [ İfade ]
Verilen komut dosyasını kopyalayın ve düzenleyiciye yapıştırın, kaydedin:

#!/bin/bash
dosya adı=dosya1
Eğer Ölçek -F '$dosya adı';
sonra
dışarı attı '$dosyabulundu.'
Başka
dışarı attı '$dosyabulunamadı'
olmak

Çıktı:

Dizinimde böyle bir dosya olmadığı için kod, Dosya bulunamadı mesajını gösteriyor.

2) eğer [ İfade ]

Dosyanın var olup olmadığını kontrol etmek için aşağıdaki komut dosyasını kopyalayın:

#!/bin/bash
dosya adı=dosyam.txt
Eğer [ -F '$dosya adı' ];
sonra
dışarı attı '$dosya adıbulundu.'
Başka
dışarı attı 'dosya adı bulunamadı'
olmak

Çıktı:

3) eğer [[ İfade ]]

Aşağıda yazılan komut dosyasını kopyalayın ve terminale yapıştırın:

#!/bin/bash
dosya adı=test dosyası
Eğer [[ -F '$dosya adı' ]];
sonra
dışarı attı '$dosya adıbulundu.'
Başka
dışarı attı '$dosya adıbulunamadı'
olmak

Çıktı:

Dizini kontrol etmek için:

3) Komut dosyası yazarken dizin adını girerek

Kullan -NS Bir dizinin varlığını kontrol etmek için bayrak.

Aşağıda belirtilen komut dosyasında, dir11, bulduğunuz dosyayı içinde sakladığınız değişkendir; bu örnekte, testDir dizin adının var olup olmadığını kontrol etmek istiyorum.

#!/bin/bash
dir11=testDir
Eğer [ -NS '$dir11' ]
sonra
dışarı attı 'Dizin bulundu'
Başka
dışarı attı 'Dizin bulunamadı'
olmak

Çıktı:

2) Terminalde dosya adını girerek:
Terminalde dizinin var olup olmadığını kontrol etmek için komutu çalıştırdığınızda, aradığınız dizin adını girmeniz gerekir:

#!/bin/bash
dışarı attı 'dizin adınızı yazın.'
okumanDir1
Eğer [ -NS 'Yön1' ]
sonra
dışarı attı 'dizin bulundu'
Başka
dışarı attı 'dizin bulunamadı'
olmak

Çıktı:

if ifadesini kullanmadan dosyayı kontrol etme:

Test komutu if ifadesi olmadan çalıştırılabilir. Yalnızca dosya varsa çıktıyı görüntüler; aksi takdirde çıktı olmazdı:

Senaryo yaz:

  1. Ölçek -Fdosyam.txt&& dışarı attı 'dosya bulundu'

  2. [ -Fdosyam.txt] && dışarı attı '$dosyabulunmuş.'

  3. [[ -Fdosyam.txt]] && dışarı attı '$dosyabulunmuş.'

Çıktı:

if ifadesini kullanmadan dizini kontrol etme:

Bir dizinin var olup olmadığını kontrol etmek için aşağıda belirtilen ifadeleri kullanın:

  1. [[ -NStestDir]] && dışarı attı 'dizin var'

  2. 2) [ -NStestDir] && dışarı attı 'dizin var'

Çıktı:

Birden fazla dosya/Dizin kontrol edilmesi:

1) Birden fazla dosyayı if ifadeleriyle kontrol etme:
Çeşitli dosyaların varlığını kontrol etmek için iç içe if/else deyimleri kullanmak yerine -a bayrağını kullanın:

#!/bin/bash
Eğer [ -Fyeni_dosya.txt-ile -Fyeni dosya.txt];sonra
dışarı attı 'Her iki dosya da var.'
olmak

Başka bir yol:

#!/bin/bash
Eğer [[ -Fyeni_dosya.txt&& -Fyeni dosya.txt]];sonra
dışarı attı 'Her iki dosya da var.'
olmak

Çıktı:

2) if ifadesini kullanmadan birden fazla dosyayı kontrol etmek:
Birden fazla dosyayı aynı anda 1 if kullanmadan kontrol etmek için aşağıdaki ifadeyi kullanın:

  1. [[ -Fyeni_dosya.txt&& -Fyeni dosya.txt]] && dışarı attıHer iki dosya da çıkar.

  2. [[ -Fyeni_dosya.txt&& -Fyeni dosya.txt]] && dışarı attıHer iki dosya da çıkar.

Çıktı:

Çözüm:

Bu makale, bir dosyayı veya dizini kontrol etmek için bash komut dosyasının nasıl kullanılacağını göstermiştir. Bir dosyanın kullanılabilirliğini kontrol etmek için farklı seçenekler kullandık. İlk olarak test komutunu farklı flaglar ile kullanıyoruz. Sonra dosya veya dizini kontrol etmek için if, iç içe if-else ve if ifadeleri olmadan kullanımını öğrendik. Ayrıca birden fazla dosya veya dizinin nasıl kontrol edileceğine baktık.