有没有办法检查特定文件的大小是否小于某个常量?我在makefile中假设有关size的内容,并且如果我的假设不符合,我想确保我会收到错误。像assert这样的东西,但是在makefile中。
if filesize(file)>C then error
else continue compilation
答案 0 :(得分:3)
在编译前的某个地方把它放在你的规则中:
test -n "$$(find filename -a -size +NNNc)"
其中filename
是文件名,NNN
是八位字节的大小。当大小小于或等于make
时,返回false并暂停NNN
。
答案 1 :(得分:2)
我的方法,可能不是最漂亮的解决方案,但它对我有用:)
CHECKFILE = \
if [ ! -f "file" ]; then \
echo "file does not exist" ; exit 1 ; \
fi; \
FSIZE=$$(du -b "file" | cut -f 1) ; \
if [ $$FSIZE -lt 100000 ]; then \
echo "filesize too small" ; exit 1 ; \
fi
all:
@$(CHECKFILE)
答案 2 :(得分:1)
我更喜欢这个 - 如果大于256字节则继续,否则停止make--以便于阅读:
test `wc -c <$<` -gt 256;
在反引号中,文件$<
被定向到wc -c
,它返回$<
的字节大小。在反引号评估$<
的大小后,test
随后与-gt
&#34;大于&#34;操作