紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
在一个特定目录下,有多个.apk结尾的文件,现在有个参考值比如20M.
如果给目录下所有的.apk文件都小于参考值20M 则 exit 0,只要有一个文件大于参考值则返回1.
同时输出每个文件的大小。
如果给目录下所有的.apk文件都小于参考值20M 则 exit 0,只要有一个文件大于参考值则返回1.
同时输出每个文件的大小。
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
用find啊,够简单了吧。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
怎么用? find 只能检索出该路径下的所欲.apk文件吧? 我需要一个个的得出他们的大小,并且和一个参考值50M 比较大小。当路径下所有的包大小都小于参考值返回0, 只要有一个大于就返回1.YeLee 写了:用find啊,够简单了吧。
原来路径下只有一个包时,可以通过我写的脚本实现
#!/bin/sh
apkStadSize=51400
apkPath="../TestBaseDemo/bin/MainActivity-debug.apk"
chmod 777 ${apkPath}
apkSize=`du ${apkPath}| awk '{print $1}'`
if [ ${apkSize} -le ${apkStadSize} ] ; then
exit 0
else
exit 1
fi
现在路径下会有多个.apk包
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
find这不是有size么…… 

◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
下午急着用,各位大虾能否先给个可用的脚本?YeLee 写了:find这不是有size么……
我今天用完再仔细研究。
谢谢
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
find -iname "*.apk" -size 51400 和 find -iname "*.apk" -size 51400 //和参考值50M比较
cat 'find -iname "*.apk" -size 51400'都没反应
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
前面加个加号啊……




◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
谢谢,试了下效果如下:YeLee 写了:前面加个加号啊……![]()
![]()
xb@renren:~/shellLearning/a$ find -iname "*.apk" -size +10
./CpuMemoryTest.apk
./Main-debug-unaligned.apk
我最后改成自己写函数来处理了,不过还遗留一个问题,就是不能显示出每个大小超标apk文件的信息
代码: 全选
#!/bin/bash
# 脚本必须返回一个值才行,所以最后需要用exit返回值
checkApk() #判断单个apk的大小
{
apkStadSize=51400 #50M
apkName=$1
# chmod 777 ${apkPath}
apkSize=`du ${apkName} | awk '{print $1}'` #此句得到某个文件的大小信息
#echo "${apkSize}" #此处想显示每个大小超标文件的文件名和大小信息,但加了此句下面函数调用会出错 :(,
if [ ${apkSize} -le ${apkStadSize} ] ; then
echo 0
else
echo 1
fi
}
# apkPath="/Users/work/bvt-android/workspace/TestBaseDemo/bin"
apkPath="/home/xb/shellLearning/a"
chmod 777 ${apkPath}
value="1"
for a in `ls ${apkPath}/*.apk`
do
#checkApkSize.sh $a
#rec=`checkApk $a`
echo "${a}"
result=`checkApk ${a}`
if [ ${result} -eq ${value} ] ; then
#echo hahahah.$result
exit ${result}
#echo "aaa"
#else
#echo "bbb"
fi
done
exit 0
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
find不是能exec吗?不行的话,再扔给xargs处理也可以吧。




◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
代码: 全选
find -iname "*.apk" -size +10|ls -l -k |awk '{print $9" size is: " $5"KB" } ' #找出当前目录下打大于10byte的文件。 同时输出文件名和大小
这句可以代替我上面代码中的函数。接下来接续解决怎么在调用该语句时不输出错误,同时根据条件exit 0 或者exit 1
实际效果如下:
不知怎的明明时前面过滤出了apk包,然后通过管道进行了ls -l, 结果ls -l把路径下所有的包都处理了
xb@renren:~/shellLearning/a$ ls
13.apk 13.sh 1.apk CpuMemoryTest.apk s.apk Untitled Document
13.apk~ 13.sh~ 1.apk~ Main-debug-unaligned.apk s.apk~ Untitled Document~
xb@renren:~/shellLearning/a$ ls
13.apk 1.apk CpuMemoryTest.apk s.apk
13.sh 1.apk~ Main-debug-unaligned.apk Untitled Document
xb@renren:~/shellLearning/a$ find -iname "*.apk" -size +10|ls -l -k |awk '{print $9" size is: " $5"KB" }'
size is: KB #多输出了这行。没看明白怎出的错
13.apk size is: 1KB
13.sh size is: 1KB
1.apk size is: 1KB
1.apk~ size is: 0KB
CpuMemoryTest.apk size is: 43KB
Main-debug-unaligned.apk size is: 38KB
s.apk size is: 1KB
Untitled size is: 1KB
xb@renren:~/shellLearning/a$
上次由 hhht 在 2012-10-16 17:50,总共编辑 2 次。
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
赋值检查输出啊,假如字串是空就是找不到,非空就是找到了。




◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 22
- 注册时间: 2012-06-19 19:18
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
hhht 写了:代码: 全选
find -iname "*.apk" -size +10|ls -l -k |awk '{print $9" size is: " $5"KB" } ' #找出当前目录下打大于10byte的文件。 同时输出文件名和大小 这句可以代替我上面代码中的函数。接下来接续解决怎么在调用该语句时不输出错误,同时根据条件exit 0 或者exit 1 实际效果如下: 不知怎的明明时前面过滤出了apk包,然后通过管道进行了ls -l, 结果ls -l把路径下所有的包都处理了 xb@renren:~/shellLearning/a$ ls 13.apk 13.sh 1.apk CpuMemoryTest.apk s.apk Untitled Document 13.apk~ 13.sh~ 1.apk~ Main-debug-unaligned.apk s.apk~ Untitled Document~ xb@renren:~/shellLearning/a$ ls 13.apk 1.apk CpuMemoryTest.apk s.apk 13.sh 1.apk~ Main-debug-unaligned.apk Untitled Document xb@renren:~/shellLearning/a$ find -iname "*.apk" -size +10|ls -l -k |awk '{print $9" size is: " $5"KB" }' size is: KB #多输出了这行。没看明白怎出的错 13.apk size is: 1KB 13.sh size is: 1KB 1.apk size is: 1KB 1.apk~ size is: 0KB CpuMemoryTest.apk size is: 43KB Main-debug-unaligned.apk size is: 38KB s.apk size is: 1KB Untitled size is: 1KB xb@renren:~/shellLearning/a$
代码: 全选
过滤输出结局了,加了xargs。效果如下:
xb@renren:~/shellLearning/a$ find -iname "*.apk" -size +10|xargs ls -l -k |awk '{print $9" size is: " $5"KB" }'
./CpuMemoryTest.apk size is: 43KB
./Main-debug-unaligned.apk size is: 38KB
接下来继续把前面的./处理掉。一点一点进步。嘿嘿
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: 紧急求助 如何获得一个目录下所有.apk结尾的文件的大小。如果都小于某个值就返回0,有1个大于参考值就返回1
● type find-opera-1M
find-opera-1M 是 `find ~/.opera/cache*/ -iname "opr*.tmp" -cmin -60 -size +1000k -printf "------\t%p\t► %Cr\t► %kK\t►" -exec file -b {} \;' 的别名
find 带的printf 多强。何必awk。。。
find-opera-1M 是 `find ~/.opera/cache*/ -iname "opr*.tmp" -cmin -60 -size +1000k -printf "------\t%p\t► %Cr\t► %kK\t►" -exec file -b {} \;' 的别名
find 带的printf 多强。何必awk。。。
● 鸣学