加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何检查文件的大小?

发布时间:2020-12-15 16:53:38 所属栏目:安全 来源:网络整理
导读:我有一个脚本检查0大小,但我认为必须有一个更容易的方法来检查文件大
我有一个脚本检查0大小,但我认为必须有一个更容易的方法来检查文件大小。也就是说file.txt通常为100k;如何使脚本检查如果它小于90k(包括0),并使它做wget一个新的副本,因为文件已损坏在这种情况下。

我目前使用的..

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
[-n file.txt]不检查其大小,它检查字符串file.txt是非零长度,因此它将始终成功。

如果你想说“size is non-zero”,你需要[-s file.txt]。

要获取文件的大小,可以使用wc -c来获取以字节为单位的大小(文件长度):

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

在这种情况下,它听起来像这是你想要的。

但是,如果你想知道文件使用了多少磁盘空间,你可以使用du -k来获取大小(使用的磁盘空间)(千字节):

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

如果你需要更多的控制输出格式,你也可以看看stat。在Linux上,你可以从stat -c’%s’file.txt和BSD / Mac OS X开始,像stat -f’%z’file.txt。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读