我有很多文件,我需要通过知道第一个文件名来确定其中有多少文件适合4Tb驱动器。名称模式为001j00_rf_geo_????$seqn
,末尾带有连续的3位数字。假设我从001j00_rf_geo_????100
开始。
block=4000000000000
shopt -s dotglob
seqn="100"
size=`stat -c%s 001j00_rf_geo_????$seqn`
for (( i=$size ;i < $block ; seqn++ ))
do
((size+=$(stat -c%s 001j00_rf_geo_????$seqn)))
done
echo $size
我很确定for
循环中的总结部分是错误的。我只是想知道如何在代码中获得具有循环部分的文件的总大小。
答案 0 :(得分:0)
查看您的for
循环,您根本没有使用'i'
- 它是不需要的。如果你想使用C风格的for
循环,你可以简单地省略初始化器:
for ((; size < block; seqn++))
do
或使用while
循环代替
while ((size < block))
do
...
((seqn++))
done
当然,您也可以将初始化移动到for
循环并摆脱上面的那个
for ((seqn = 100; size < block; seqn++))
do
如果您还有其他问题,请尝试并告诉我。