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

前端之家收集整理的这篇文章主要介绍了bash – 如何检查文件的大小?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个脚本检查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。

原文链接:https://www.f2er.com/bash/392681.html

猜你在找的Bash相关文章