目前我正在尝试通过读取目录来检查文件大小
read directory
dirsize=$(du -sh $directory)
if [[ "$dirsize" -ge 2MB ]]; then
echo 'High'
elif [[ "$dirsize" -le 2MB ]]; then
echo 'Low'
fi
问题是当我检查文件大小时,输出会像
4.0K ./......./... 32M ./......./...
所以,当我编写代码时它不起作用,我不知道如何修复。例如,
if [[ "$dirsize" -ge 2MB ]]; then
echo 'High'
从上面的代码中,如果文件大于 2MB,我的意思是回显“高”。请您给点建议。
du
返回大小和文件/目录名称。因为你只需要你刚刚阅读第一部分的大小。你需要字节,而不是iec大小。您可以使用
numfmt
将 iec 数字转换为字节(请参阅 参考资料man numfmt
)。数字可以通过 bash 与数字比较运算符进行比较(请参阅 参考资料
man test
)。该输出是您通过向 提供
-h
(--human-readable
) 选项选择的输出du
。当你把它排除在外时,你会获得更多的成功。然后,所有尺寸都以相同的单位打印。