SORU
15 HAZİRAN 2011, ÇARŞAMBA


Eğer bir dosya kabuk joker ile varsa kontrol edin

Eğer bir dosya olup olmadığını kontrol etmek için çalışıyorum, ama bir joker ile birlikteyim. İşte benim örnek:

if [ -f "xorg-x11-fonts*" ]; then
    printf "BLAH"
fi

Ayrıca çift tırnak işaretleri olmadan denedim.

CEVAP
15 HAZİRAN 2011, ÇARŞAMBA


En basit ls dönüş değeri güvenmek olmalıdır (döndürür dosyaları yok sıfır olmayan):

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi

ls çıkış tamamen sessiz yapmak için oraya yönlendirdim.


EDİT: bu cevap var biraz dikkat (ve çok yararlı eleştirmen açıklamalar olarak yorumlar), burada bir iyileştirme de dayanır kısım genişleme, ama önler kullanım ls:

for f in /path/to/your/files*; do

    ## Check if the glob gets expanded to existing files.
    ## If not, f here will be exactly the pattern above
    ## and the exists test will evaluate to false.
    [ -e "$f" ] && echo "files do exist" || echo "files do not exist"

    ## This is all we needed to know, so we can break after the first iteration
    break
done

Bu @grok12 cevabı çok benzer, ama bütün liste boyunca gereksiz yineleme önler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Deany Boii

    Deany Boii

    27 Kasım 2007
  • iNCH

    iNCH

    20 Temmuz 2009
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014

İLGİLİ SORU / CEVAPLAR