macos - 如何获取带有文件名的文件的完整路径?
问题描述
[ 解决方案 ]
感谢@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"
有什么帮助吗?
解决方案
您可以使用该locate
命令在文件系统中查找文件。
如果您还没有启用它,您可以通过运行以下命令来启用它
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
您将无法使用它几分钟,因为它将索引所有内容,稍后您可以使用它locate file_name.apk
来查找您正在寻找的文件。
推荐阅读
- asp.net-mvc-5 - mvc 5 将文本框值作为参数传递
- c# - 如何与谷歌日历同步数据库
- reactjs - 在 react-material-ui-form-validator 中设置 `TextValidator` 样式
- sql - 将字符串拆分为数组并排序 arr[1] ?- 微软 SQL
- api - Apostrophe CMS API 从附件创建图像
- android - 从android中的特定文件名加载图像
- php - 增加 imagicks 最大分辨率
- intellij-idea - Groovy 代码的 IntelliJ 编译警告错误
- android - Firestore getCount 方法返回任务。如何转换为 int 或 String?
- c# - c# 保存后图片尺寸变大