adb(Android Debug Bridge)是Android开发中常用的命令行工具,它允许用户与Android设备进行通信,包括文件传输、应用安装、系统调试等操作,在adb的使用过程中,新建文件夹是一项基础但实用的功能,尤其是在需要批量管理设备文件或调试应用时,本文将详细介绍通过adb新建文件夹的命令、使用场景、注意事项以及相关技巧,帮助用户更好地掌握这一操作。

adb新建文件夹的基本命令
在Android系统中,新建文件夹主要通过adb shell命令实现,由于Android基于Linux内核,其文件系统操作与Linux类似,因此可以使用mkdir命令来创建目录,基本语法如下:
adb shell mkdir [路径/文件夹名]
在设备的sdcard根目录下创建一个名为“test”的文件夹,命令为:
adb shell mkdir /sdcard/test
如果需要在深层路径下创建文件夹,例如在“/sdcard/downloads”下创建“new_folder”,可以直接使用:
adb shell mkdir /sdcard/downloads/new_folder
需要注意的是,如果目标路径中的父目录不存在,mkdir命令会报错,此时可以通过-p参数递归创建多级目录,

adb shell mkdir -p /sdcard/parent/child/grandchild
该命令会自动创建所有不存在的父目录,确保最终目录被成功建立。
不同场景下的使用方法
-
在设备存储中创建文件夹
Android设备的内部存储(如/sdcard或/storage/emulated/0)是常用的文件操作区域,为了整理下载的文件,可以创建分类文件夹:adb shell mkdir -p /sdcard/Downloads/Documents /sdcard/Downloads/Images
执行后,通过文件管理器或adb命令
ls验证目录是否创建成功:adb shell ls /sdcard/Downloads
-
在应用私有目录中创建文件夹
应用私有目录(如/data/data/包名)需要root权限才能访问,如果设备已root,可以通过以下命令为特定应用创建目录:
(图片来源网络,侵删)adb shell mkdir /data/data/com.example.app/my_folder adb shell chown u0_a100:u0_a100 /data/data/com.example.app/my_folder # 修改所有者
其中
com.example.app为应用包名,u0_a100为应用的用户ID,需根据实际情况调整。 -
通过push命令间接创建文件夹
如果需要将本地文件夹上传至设备并自动创建目录结构,可以使用adb push命令,将本地./local_folder上传至设备的/sdcard/remote_folder:adb push ./local_folder /sdcard/remote_folder
即使目标路径不存在,
adb push也会自动创建多级目录,相当于间接实现了文件夹创建功能。
常见问题与解决方案
-
权限不足导致创建失败
在未root的设备上,普通用户无法直接修改系统目录(如/system),例如执行adb shell mkdir /system/test会报错“Permission denied”,解决方案是通过adb root获取root权限(需设备已解锁bootloader并安装自定义恢复),或选择可写的目录(如/sdcard)。 -
路径不存在且未使用
-p参数
如果尝试创建/sdcard/a/b/c而/sdcard/a不存在,命令会失败,正确做法是添加-p参数:adb shell mkdir -p /sdcard/a/b/c
高级技巧与注意事项
-
使用通配符批量创建文件夹
虽然mkdir本身不支持通配符,但可以通过脚本实现批量操作,在adb shell中执行以下命令创建多个文件夹:for dir in dir1 dir2 dir3; do mkdir /sdcard/$dir; done
-
检查目录是否创建成功
使用ls命令或test -d验证目录存在性:adb shell "if [ -d /sdcard/test ]; then echo 'Directory exists'; else echo 'Not found'; fi"
-
避免特殊字符问题
如果文件夹名包含空格或特殊字符(如my folder),需用引号包裹路径:adb shell mkdir "/sdcard/my folder"
-
跨设备兼容性
不同Android版本的路径可能略有差异(如Android 10+使用/storage/emulated/0代替/sdcard),建议通过adb shell ls /storage确认实际路径。
相关操作示例
以下表格总结了常见的新建文件夹操作及命令:
| 操作场景 | 命令示例 | 说明 |
|---|---|---|
| 创建单级目录 | adb shell mkdir /sdcard/test |
在sdcard根目录创建test文件夹 |
| 创建多级目录 | adb shell mkdir -p /sdcard/parent/child |
递归创建parent和child目录 |
| 在应用私有目录创建 | adb shell mkdir /data/data/com.app/files/new |
需root权限 |
| 通过push上传并创建目录 | adb push ./local /sdcard/remote |
自动创建remote目录及其子目录 |
| 批量创建多个目录 | adb shell "for d in a b c; do mkdir /sdcard/$d; done" |
循环创建a、b、c三个文件夹 |
相关问答FAQs
Q1: 为什么在执行adb shell mkdir /system/test时提示“Permission denied”?
A1: /system目录是Android系统的只读分区,普通用户无法直接修改,如果需要在系统目录创建文件夹,必须先获取root权限(通过adb root命令),且设备需已root,直接修改系统目录可能导致系统不稳定,建议谨慎操作。
Q2: 如何通过adb将本地文件夹完整复制到设备并自动创建目录结构?
A2: 使用adb push命令即可实现,将本地D:\local_folder复制到设备的/sdcard/remote_folder:
adb push D:\local_folder /sdcard/remote_folder
该命令会自动在设备上创建remote_folder目录,并递归复制所有子文件和子文件夹,如果目标路径已存在同名文件,可能会被覆盖,建议提前检查。
