一、前言
小编在最近的测试过程中遇到了一个需要构造Android手机存储空间不足的场景,并且还需要覆盖验证各种机型,而单个拷贝大文件到测试机器又太繁琐,小编查阅资料发现Linux下的dd命令可以协助小编完成此项任务,正好借此机会给大家分享一下dd命令在Android shell下的一些用法:
二、dd命令介绍
dd是Linux下一个非常有用的命令,该命令用于读取、转换并输出数据;
dd命令在Android shell下也支持使用哦!
Android shell中可支持的常用命令参数如下:
1. if=文件名:输入文件名,即指定源文件。
/dev/zero主要是用来创建一个指定长度用于初始化的空文件, 一般需要创建空文件的时候if参数值都会设置为此项哦!
2. of=文件名:输出文件名,即指定目的文件。
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes字节。
bs=bytes:同时设置读入/输出的块大小为bytes字节。
4. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
三、操作实例
1、在手机/mnt/sdcard/目录下生成一个10M的空文件
adb shell dd if=/dev/zero of=/mnt/sdcard/yyybigfile bs=10485760 count=1
注:bs不支持使用单位书写(例:bs=10M),此项与dd命令在linux系统下使用不同
2、在手机/mnt/sdcard/目录下生成一个超大文件,填满整个手机存储空间
adb shell dd if=/dev/zero of=/mnt/sdcard/yyybigfile bs=4294967295
注:bs=4294967295(约4GB)为手机下最大读入/输出块大小,可以缩短大文件的填充时间
3、将手机/mnt/sdcard/目录下的yysdk文件打包并使用gzip工具进行压缩
adb shell “dd if=/mnt/sdcard/yysdk | gzip > /mnt/sdcard/yyybigfile.gz”
注:将手机下的文件夹压缩后更方便于拷贝到本地
四、小结
当然,dd命令在linux环境下的使用场景并不止这些,感兴趣的小伙伴可以去了解下哦。在以后的工作中,大家可能也会遇到类似的问题,比如异常条件下(本地空间不足),文件及图片是否下载正常,是否有异常提示,希望此文可以给大家一些帮助及参考。
本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。