如果文件大小小于 30 KB 则显示一条消息

如果文件大小小于 30 KB 则显示一条消息

我在脚本中有一个 Zenity 消息框,

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

我需要在文件小于 30 KB 时弹出一条消息,例如:“文件小于 30 KB!”。

我该如何编写“if then else”脚本来弹出 zenity 消息,例如:“FILE”小于 30 KB?

谢谢!

答案1

#!/bin/bash

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

答案2

这些示例使用特定于更现代的 shell(例如 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

答案3

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

相关内容