BASH Scripting | Dosya İzinleri - PATH Değişkeni | Part 1
İçindekiler:
- Dosyanın Var olup olmadığını kontrol edin
- Dizin Var olup olmadığını kontrol edin
- Dosyanın Var Olmadığını Kontrol Edin
- Birden Fazla Dosyanın Var olup olmadığını kontrol edin
- Dosya testi operatörleri
- Sonuç
Birçok kez Shell komut dosyaları yazarken, kendinizi bir dosyanın var olup olmadığına bağlı olarak bir eylem gerçekleştirmeniz gereken bir durumda bulabilirsiniz.
Bash'te, bir dosyanın var olup olmadığını kontrol etmek ve dosyanın türünü belirlemek için test komutunu kullanabilirsiniz.
Test komutu aşağıdaki sözdizimi formlarından birini alır:
Dosyanın Var olup olmadığını kontrol edin
Bir dosyanın olup olmadığını kontrol ederken, en çok kullanılan FILE işleçleri
-e
ve
-f
. Birincisi dosyanın türüne bakılmaksızın var olup olmadığını kontrol ederken, ikincisi yalnızca DOSYA normal bir dosyaysa (dizin veya aygıt değil) true değerini döndürür.
Bir dosyanın var olup olmadığını kontrol ederken en okunabilir seçenek, test komutunu if ifadesiyle birlikte kullanmaktır. Aşağıdaki snippet'lerden herhangi biri
/etc/resolv.conf
dosyasının var olup olmadığını kontrol eder:
FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi
FILE=/etc/resolv.conf if; then echo "$FILE exist" fi
FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi
Dosyanın var olup olmamasına bağlı olarak farklı bir eylem gerçekleştirmek istiyorsanız, if / then yapısını kullanın:
FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi
Adlarında boşluk içeren dosyalarla uğraşırken sorunları önlemek için her zaman çift tırnak kullanın.
Test komutunu if ifadesi olmadan da kullanabilirsiniz.
&&
sonraki komut yalnızca test komutunun çıkış durumu doğruysa çalıştırılır,
test -f /etc/resolv.conf && echo "$FILE exist"
&& echo "$FILE exist"
] && echo "$FILE exist"
&& { echo "$FILE exist"; cp "$FILE" /tmp/; }
&&
,
||
operatörü yalnızca test komutunun çıkış durumu
false
.
&& echo "$FILE exist" || echo "$FILE does not exist"
Dizin Var olup olmadığını kontrol edin
-d
işleçleri bir dosyanın dizin olup olmadığını test etmenizi sağlar.
Örneğin,
/etc/docker
dizininin var olup olmadığını kontrol etmek için şunu kullanabilirsiniz:
FILE=/etc/docker if; then echo "$FILE is a directory" fi
&& echo "$FILE is a directory"
Ayrıca
, 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));
çift köşeli parantezleri de kullanabilirsiniz
, 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));
Dosyanın Var Olmadığını Kontrol Edin
Diğer birçok dile benzer şekilde, test ifadesi
!
(ünlem işareti) mantıksal değil mantıksal:
FILE=/etc/docker if; then echo "$FILE does not exist" fi
Yukarıdaki gibi:
&& echo "$FILE does not exist"
Birden Fazla Dosyanın Var olup olmadığını kontrol edin
Karmaşık iç içe yerleştirilmiş if / else yapılarını kullanmak yerine
-a
(veya
&&
ile
; then echo "$FILE is a directory" fi
FILE=/etc/docker if; then echo "$FILE is a directory" fi
IF deyimini kullanmadan eşdeğer varyantlar:
&& echo "both files exist"
Dosya testi operatörleri
Sınama komutu, belirli dosya türlerini sınamanıza izin veren aşağıdaki FILE işleçlerini içerir:
-
-b
FILE
- DOSYA varsa ve bir blok özel dosyasıysa doğrudur.-c
FILE
- FILE varsa ve özel bir karakter dosyasıysa doğrudur.-d
FILE
- DOSYA varsa ve bir-d
doğrudur.-e
FILE
- FILE, türden (düğüm, dizin, soket vb.) bağımsız olarak varsa ve bir dosyaysa doğrudur.-f
FILE
- DOSYA varsa ve normal bir dosyaysa (dizin veya aygıt değil) doğrudur.-G
FILE
- FILE varsa ve komutu çalıştıran kullanıcıyla aynı gruba sahipse doğrudur.-h
FILE
- DOSYA varsa ve sembolik bir bağlantıysa doğrudur.-g
FILE
- FILE varsa ve set-group-id (sgid) bayrağı ayarlanmışsa true olur.-k
FILE
- FILE varsa ve yapışkan bit bayrağı ayarlanmışsa doğrudur.-L
FILE
- DOSYA varsa ve sembolik bir bağlantıysa doğrudur.-O
FILE
- DOSYA varsa ve komutu çalıştıran kullanıcının sahibi varsa doğrudur.-p
FILE
- DOSYA varsa ve bir boru ise doğrudur.-r
FILE
- DOSYA varsa ve okunabilirse doğrudur.-S
FILE
- FILE varsa ve soket ise doğrudur.-s
FILE
- DOSYA varsa ve sıfır olmayan bir boyuta sahipse doğrudur.-u
FILE
- Var ve set-user-id (suid) bayrağı ayarlanmışsa doğrudur.-w
FILE
- DOSYA varsa ve yazılabilirse doğrudur.-x
FILE
- FILE varsa ve çalıştırılabilirse doğrudur.
Sonuç
Bu kılavuzda, Bash kullanarak bir dosya veya dizinin var olup olmadığını nasıl kontrol edeceğinizi gösterdik.
bash terminaliGoogle dns veya opendns veya başka herhangi bir sizin için en hızlı olup olmadığını bilmek

Google DNS veya OpenDNS veya Başka Birinin Sizin İçin En Hızlı Olduğunu Nasıl Bilirsiniz?
Bilgisayarınızın windows için hazır olup olmadığını kontrol etme 7

Windows Vista'dan Windows Vista'ya yükseltmek için Windows yükseltme danışmanının nasıl çalıştırılacağını öğrenin.
Python'da bir dosya veya dizinin mevcut olup olmadığı nasıl kontrol edilir

Python komut dosyaları yazarken, yalnızca bir dosya veya dizin mevcutsa veya olmasa da belirli bir eylem gerçekleştirmek isteyebilirsiniz. Örneğin, bir yapılandırma dosyasını veri okumak veya bu dosyaya veri yazmak ya da yalnızca zaten yoksa dosyayı oluşturmak isteyebilirsiniz.