adb shell命令:mkdir(用于创建目录)

8

我正试图通过adb shell创建目录。

我尝试在etc文件夹中创建目录,但没有成功。我发现它与/system/etc有关联,因此尝试在/system/etc中创建,但两种情况下都出现了“只读文件系统”的错误。

如何使其可写?

我尝试使用“su”切换到超级用户。

我尝试在主机机器上修改udev/rules.d

created a file 51-android.rules with " SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  "

我仍然遇到了“只读文件系统”的问题。

我该如何解决这个问题呢?


大多数 shell 命令在 Android 上都可以使用...请查看 chown 命令。 - KDEx
这不是特定问题的答案,但它可能会对那些有类似问题的人有所帮助:当在/sdcard或其子文件夹中使用时adb shell mkdir运行良好。在我的情况下,我本意是在/sdcard的一个子文件夹中使用它,但意外指定了一个我没有访问权限的文件夹,因为我的手机没有被root。所以,如果你在应该具有访问权限的文件夹中遇到了这个错误,那么你可能在错误的文件夹中。 - Donald Duck
4个回答

6
[技巧] 使用adb push在非root手机上创建一个或多个目录:
如果您使用以下命令:
adb push myfolder /storage/sdcard0/Download

“myfolder”包含其他文件夹,这些文件夹将被创建在手机的“Download”文件夹中的“myfolder”内。

因此,我用的方法是将资源安装在我的应用程序内:

adb push assetfolder /storage/sdcard0/Android/data/com.myapp.name/

然后,“assetfolder”包含的内容是:
assetfolder/
   assetfolder/db/mysqlite.db
   assetfolder/img/myimage.png
   assetfolder/json/initial-data.json

etc

Then my app has its

com.myapp.name/db/mysqlite.db
com.myapp.name/img/myimage.png
com.myapp.name/json/initial-data.json

希望能帮到你!

如果文件夹中包含文件,则此方法可以正常工作,但是如果我尝试对空文件夹执行此操作,则输出“0个文件已推送,0个跳过”,并且不执行任何操作。 - Donald Duck
没错,@DonaldDuck。我确认我正在复制的文件夹里有文件。我猜你的情况的解决方法是在文件夹中添加一个小文件,这样复制就会成功。 - voghDev
这不是我的发现。如果我执行“adb push myfolder /storage/sdcard0/Download”,它会在Download文件夹中创建MYFOLDER文件夹和子文件夹,而不是像你所说的那样在Download文件夹中创建子文件夹。 - Bruce
@Bruce 就是这个意思。文件夹在预期位置中。但我再次阅读了我的回答,确实可能会引起混淆。看来我说的和你一样。我会改变它。 - voghDev

2

-2

以 root 用户身份登录,使用以下命令,它会有所帮助

adb root adb remount


-5

以root身份登录,只需在Linux命令模式下将以下权限添加到您的文件中:

$ chmod 777 rules.d


将系统文件设置为所有用户可写不仅是不明智的,而且也不能解决“只读文件系统”的问题 - 问题在于文件系统的挂载,而不是单个文件的权限。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接