Отобразите сообщение, если размер файла меньше, чем 30 кбайт

У меня есть окно сообщения Zenity в сценарии

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

Я должен открыться сообщение, например: "файл меньше затем 30 кбайт!" когда файл меньше затем 30 кбайт.

Как мог я затем еще писать "если" сценарий для появления сообщения zenity, когда, например: "ФАЙЛ" меньше затем 30 кбайт?

Спасибо!

0
задан 24.12.2015, 16:54

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
3
ответ дан 24.11.2019, 03:37

Эти примеры используют синтаксис, который характерен для более современных оболочек, таких как Bash, ksh и zsh.

Некоторые системы не имеют stat и Вы не должны анализировать 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

Где "30k" равняется 30720. Если Вы предпочли бы, можно использовать -size -30000c.

Если Вы действительно имеете 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
1
ответ дан 24.11.2019, 03:37
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
0
ответ дан 24.11.2019, 03:37

Теги

Похожие вопросы