一、前言

小编在最近的过程中遇到了一个需要构造存储空间不足的场景,并且还需要覆盖验证各种机型,而单个拷贝大文件到测试机器又太繁琐,小编查阅资料发现下的dd命令可以协助小编完成此项任务,正好借此机会给大家分享一下dd命令在Android 下的一些用法:

二、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环境下的使用场景并不止这些,感兴趣的小伙伴可以去了解下哦。在以后的工作中,大家可能也会遇到类似的问题,比如异常条件下(本地空间不足),文件及图片是否下载正常,是否有异常提示,希望此文可以给大家一些帮助及参考。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐