首页 > 解决方案 > 如何获取带有文件名的文件的完整路径?

问题描述

[ 解决方案 ]

感谢@oguzismail 和@stylo 我找到了解决方案。在 find 命令中,我将2>&1修改为2>/dev/null并删除了 grep 命令,但我发现它检索到两个不同路径的问题(因为 Android studio 它生成了两个具有相同名称的不同 apk两条不同的路径)。

为了只获取我想要的 apk 的路径,我为我的 find 命令添加了一个“过滤器”,因此解决方案是:

find / -path ./intermediates -prune -o -name app-ipd-debug.apk 2>/dev/null

使用文件夹的名称,./intermediates-prune -o可以获得我想要的路径。

我在这篇文章中看到了解决方案

[ 问题 ]

我正在做一个shell脚本来构建一个android项目,安装apk并在设备中做一些更多的配置,比如设置所有者设备所有者(是一个信息亭模式应用程序)等等。

现在我正在尝试动态构建项目并获取 apk 文件以安装在设备中,但它无法正常工作。

我尝试将完整路径作为变量放在我的 shell 脚本中,这可以使用命令 adb install 安装应用程序:

adb install -t -r $APK_PATH

我尝试使用find命令获取 APK_PATH,但它检索到很多我不知道如何处理的输出,命令是:

find / -name apk-file-name.apk

显示了许多带有“ Permission denied ”和“ Operation not allowed ”的输出,其中一行显示了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"

有什么帮助吗?

标签: macosshelladb

解决方案


您可以使用该locate命令在文件系统中查找文件。

如果您还没有启用它,您可以通过运行以下命令来启用它

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

您将无法使用它几分钟,因为它将索引所有内容,稍后您可以使用它locate file_name.apk来查找您正在寻找的文件。


推荐阅读