[解决方案]
感谢@oguzismail和@stylo,找到了解决方案。在find命令中,我为 2> / dev / null 修改了 2>&1 并删除了grep命令,但是我发现问题在于它检索到了两个不同的路径(因为Android Studio是在两个不同的路径上生成了两个具有相同名称的不同apk)。
仅获取我想要的apk的路径,我为我的find命令添加了一个“过滤器”,因此解决方案是:
find / -path ./intermediates -prune -o -name app-ipd-debug.apk 2>/dev/null
使用文件夹./intermediates
和-prune -o
的名称,我可以获得所需的路径。
我看到了解决方法in this post
[问题]
我正在做一个Shell脚本,该脚本构建一个android项目,安装apk并在设备中进行一些其他配置,例如set owner设备所有者(是一个信息亭模式的应用程序)和更多东西。
现在,我正在尝试动态构建项目并获取apk文件安装在设备中,但是它无法正常工作。
我尝试将完整路径作为变量放入我的shell脚本中,这可以使用adb install命令安装应用程序:
adb install -t -r $APK_PATH
我试图用 find 命令获取APK_PATH,但是它检索到很多我不知道如何处理的输出,命令是:
find / -name apk-file-name.apk
显示了很多带有“ 权限被拒绝”和“ 不允许操作”的输出,并在其中一行显示了apk路径(这是一个我不知道如何得到,只有这个结果)
我尝试使用grep过滤结果,但不起作用
find / -name apk-file-name.apk 2>&1 | grep -v "Operation not permitted"
和
find / -name apk-file-name.apk 2>&1 | grep -v "Operation not permitted"|"Permission denied"
有什么帮助吗?
答案 0 :(得分:1)
您可以使用locate
命令在文件系统中找到文件。
如果尚未启用它,可以通过运行以下命令来实现
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
您将无法使用它几分钟,因为它将为所有内容建立索引,以后您可以使用locate file_name.apk
查找所需的文件。