自动化工具 想在手机上随机生成 1000 万 个文件,怎么搞?

sunny0330 · 2019年09月29日 · 最后由 sunny0330 回复于 2019年11月18日 · 3943 次阅读

目前有一种方法是通过 adb shell,串行方式,但是比较慢大概时间在 1 个多小时 0。
想问一下大家,又没有推荐的方式,给点帖子或者思路?
Python 能不能搞?

共收到 17 条回复 时间 点赞

做什么用啊,拷几个大文件不就行了,导照片

我去催饭 回复

搞错了,不是 1000 个,是 1000 万,大小不小于 10Kb

编译一个 Android 可执行文件在 Android 内部运行是不是要快些?

1.编写一个 apk 文件
2.应用多线程创建随机文件

YueChen 回复

这个没有试过,感觉是会快一些,没有搞过安卓,这个实施起来快吗

Nick 回复

好的,没有搞过安卓,试试吧😂

seq 10000000 | xargs -i dd if=/dev/zero of={}.txt bs=10k count=1

我想问生成这么多文件搞啥子😂

adb 有填充硬盘空间的办法,稍微改下。随机文件还是看你需求是什么,文件名后面序号 +1 也没啥问题吧。

SineIO 回复

测试性能

陈子昂 回复

可以啊,但是时间没有保障

陈子昂 回复

文件数量是不能少的,1000 万个 4KB 文件,之前有看到自动填充到 32G 的文档,但是不符合数量

shell 的 dd 文件进行创建就够了,配置随机的生成大小,无非写个创建文件函数,传参控制。同时做多进程生成。

#!/system/bin/sh

# $1 存储目录
# $2 文件数量
# $3 起始文件名数量
DD(){
echo "pid=$$"
local i=0
while true;do
    local name=$((i+$3))
    dd if=/dev/zero of=$1/$name.dat bs=4096 count=1 1>/dev/null 2>&1
    local i=$((i+1))
    if [ $i -eq $2 ];then
        break
    fi
done
echo $$ finish
}

folder=$3
if [ ! -d $folder ];then
    mkdir -p $folder
fi
#开多进程

#$1 进程数量
#$2 单进程文件数
#$3 存储位置
n=0
while true;do
    DD $folder $2 $(((n-1)*$2)) &
    n=$((n+1))
    echo "进程: $n"
    if [ $n -eq $1 ];then
        break
    fi
done
wait

存 sh 文件(unix 文本格式,utf8)push 到手机执行,参数参考注释

下载个 Android Terminal,执行 shell 就 OK 了

浮云 回复

感谢,最近攻关才结束,忘记看了

浮云 回复

立马搞起来

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册