SORU
7 Mayıs 2011, CUMARTESİ


Nasıl bir dosya boyutunu kontrol etmek için?

0-boyutu denetleyen bir komut dosyası var ama dosya boyutları için yerine kontrol etmek daha kolay bir yolu olmalı diye düşündüm. I. e. file.txt normalde 100 k; nasıl bir senaryo kontrol edin eğer az 90 kalibre (0 dahil), ve bunu wget yeni bir kopya çünkü dosya bozuk bu durumda.

.. Şu anda kullanıyorum

if [ -n file.txt ]
then
 echo "everything is good"
else
 mail -s "file.txt size is zero, please fix. " myemail@gmail.com < /dev/null
 # Grab wget as a fallback 
 wget -c https://www.server.org/file.txt -P /root/tmp --output-document=/root/tmp/file.txt
 mv -f /root/tmp/file.txt /var/www/file.txt
fi

CEVAP
7 Mayıs 2011, CUMARTESİ


[ -n file.txt ] boyutuna bakmayan, file.txt dize sıfır uzunluk denetler, her zaman başarılı olur.

Eğer söylemek istiyorsanız "boyutu sıfır", [ -s file.txt ] gerekir.

Bir dosya boyutu için wc -c boyutu (dosya uzunluğu) bayt almak için kullanabilirsiniz:

file=file.txt
minimumsize=90000
actualsize=$(wc -c <"$file")
if [ $actualsize -ge $minimumsize ]; then
    echo size is over $minimumsize bytes
else
    echo size is under $minimumsize bytes
fi

Bu durumda, istediğin gibi.

Ama bilgin olsun, eğer dosyayı kullanıyor bilmek istiyorsanız, du -k boyutu (disk alanı kullanılır) kilobayt almak için kullanabilirsiniz:

file=file.txt
minimumsize=90
actualsize=$(du -k "$file" | cut -f 1)
if [ $actualsize -ge $minimumsize ]; then
    echo size is over $minimumsize kilobytes
else
    echo size is under $minimumsize kilobytes
fi

Eğer çıkış biçimi üzerinde daha fazla kontrol gerekiyorsa, ayrıca stat bakabilirsiniz. Linux, BSD stat -c '%s' file.txt, gibi bir şey ile başlamak istiyorum/Mac OS X stat -f '%z' file.txt gibi bir şey.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Air_Fooj

    Air_Fooj

    24 NİSAN 2009
  • CruzerLite

    CruzerLite

    1 EKİM 2011
  • movies95

    movies95

    27 Kasım 2006