如何使用批处理在 /sdcard 上 adb chmod 750
Posted
技术标签:
【中文标题】如何使用批处理在 /sdcard 上 adb chmod 750【英文标题】:How to adb chmod 750 on /sdcard using batch 【发布时间】:2014-11-20 22:34:00 【问题描述】:我正在学习 adb。有人可以告诉我为什么下面的 chmod 命令没有更改 /sdcard 上目录的权限吗? 它在 /data 中运行良好, 但我正在尝试在 /sdcard 中进行测试。感谢您的帮助。
adb shell su -c "chmod -R 750 /sdcard/path/to/dir"
当前权限为-rw- --- ---
我正在从批处理脚本运行命令。
我已经扎根,并假设我不需要带有 sdcard 的 su,但尝试了以下方法,它们也不起作用。
adb chmod -R 750 /sdcard/path/to/dir chmod -R 750 /sdcard/path/to/dir adb shell "chmod -R 750 /sdcard/path/to/dir"【问题讨论】:
这与批处理文件无关 - 批处理文件是由命令处理器执行的基于文本的脚本(通常是 DOS 和早期版本的 Windows 上的 COMMAND.COM,OS/ 上的 cmd.exe 2 及更高版本的 Windows)。标记批处理文件可用于为基于 Windows 的操作系统编写批处理脚本文件时与编程相关的问题。 我在 DOS 批处理文件中使用它,我认为我应该这么说。我没有在 CMD 窗口中输入命令。 su 和 chmod 是 unix 命令。您的问题与 Windows 无关。我知道它在一个 bat 文件中,但这是一个 unix 问题。 +1 表示 1. 尝试解决您自己的问题和 2. 在您的问题中记录您所做的事情。但是,您正在混合苹果(可以这么说)和橙子。 Windows .bat 文件对chmod
一无所知。您需要运行一组一致的命令,无论是来自 Windows 的带有 .bat 文件的文件访问实用程序,还是来自 shell 脚本(通常是 bash
)的 unix 文件实用程序。很抱歉,但我不确定哪些 Windows 命令(如果有)提供与chmod
类似的功能。祝你好运。
@shelter 是的,我在 Windows 的 DOS 批处理文件中运行它。我以这种方式做了几件 adb 事情:adb devices、wait-for-device、kill and start server、push and pull。此特定命令适用于 /data,但不适用于 /sdcard。如您所见,被踢出批处理文件。希望一些 adb、android 或 unix 的人可以查看命令并发现问题。
【参考方案1】:
这通常不起作用。 Android sdcard 卷通常安装有“-noexec”标志,以防止发生您想要做的事情,无论它是什么 FS 类型(vfat 或 ext2/3/4)。
由于您有一个根设备,您可能想尝试重新挂载没有 noexec 标志的 sdcard 卷 - 但不确定它是否适用于 FUSE 文件系统驱动程序......
【讨论】:
与了解更多的人商议,我得出了这个结论。感谢您的解释!你能给我“-noexec”的语法吗?我用它来访问/data: adb -d shell su -c "mount -o remount rw, /data。我会使用 adb -d shell su -c "mount -noexec remount rw, /sdcard我>? @user338032 "mount -o remount,rw" 应该可以,不需要添加 "-noexec"。【参考方案2】:我知道我迟到了将近一年,但请尝试使用:
adb shell su -c chmod 750 /sdcard/path/to/dir/*
最后的小通配符会将权限应用于文件夹中的每个文件。
你也可以使用类似的东西:
adb shell su -c chmod 750 /sdcard/path/to/dir/*.apk
...仅对目录中的 APK 文件应用权限。
【讨论】:
这不是用户想要做的。以上是关于如何使用批处理在 /sdcard 上 adb chmod 750的主要内容,如果未能解决你的问题,请参考以下文章
处理git bash中使用adb shell时的路径错误问题