Exibir uma mensagem se o tamanho do arquivo for menor que 30 KBytes

0

Eu tenho uma caixa de mensagem do Zenity em um script

zenity --info --text='done' > /dev/null 2>&1

Preciso abrir uma mensagem, por exemplo: "o arquivo é menor que 30 KB!" quando um arquivo é menor que 30 KB.

Como eu poderia escrever um script "if then else" para exibir uma mensagem zenity, quando, por exemplo, "FILE" é menor que 30 KByte?

Obrigado!

    
por LanceBaynes 28.02.2011 / 10:34

3 respostas

3
#!/bin/bash

if [ $(stat --printf="%s" FILENAME) -lt 30720 ]; then
    zenity --info --text='file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
    
por 28.02.2011 / 10:49
1

Estes exemplos usam uma sintaxe específica para shells mais modernos, como Bash, ksh e zsh.

Alguns sistemas não têm stat e você não deve analisar ls .

result=$(find . -maxdepth 1 -name "$file" -size -30k)
if [[ ${result##*/} = $file ]]
then
    zenity --info --text='The file is smaller then 30 KBytes!' > /dev/null 2>&1
fi

Onde "30k" é igual a 30720. Se preferir, você pode usar -size -30000c .

Se você tiver stat :

size=$(stat -c '%s' "$file")
if (( size < 30720 ))    # or you could use 30000
then
    zenity --info --text='The file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
    
por 28.02.2011 / 12:51
0
SIZE='ls -l $1 | awk '{print $5}''

if [ $SIZE -lt 30720 ]
then
        zenity --info --text='File is smaller than 30KB' > /dev/null 2>&1
fi
    
por 28.02.2011 / 10:47