gpt4 book ai didi

bash - 如何使用 Bash 检查文件的大小?

转载 作者:行者123 更新时间:2023-11-29 08:38:26 29 4
gpt4 key购买 nike

我有一个检查 0 大小的脚本,但我认为必须有一种更简单的方法来检查文件大小。 IE。 file.txt 通常为 100 kB;如果小于 90 kB(包括 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 是否为非零长度,因此它总是会成功。

如果你想说“大小不为零”,你需要[ -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

关于bash - 如何使用 Bash 检查文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920333/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com