You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过adb获取Android指定目录最新修改文件并执行删除操作

可用执行命令

你可以直接使用不需要依赖xargs兼容的方案,把所有逻辑放到安卓设备侧执行即可:

adb shell 'cd /sdcard/Android/data/my.app.package && rm -f $(ls -t | head -n 1)'
原命令报错原因
  1. 最开始的写法没有把完整管道逻辑用引号包裹,导致head、xargs等命令实际是在你的电脑本地执行的,拿到的只有文件名没有完整路径,本地自然找不到安卓设备上的对应文件,所以rm报错不存在。
  2. 安卓系统默认使用toybox工具集,自带的xargs对-I这类参数的支持不完整,部分旧版本甚至不支持该参数,也会导致拼接路径的命令执行失败。
更稳妥的优化方案

如果需要兼容文件名含空格、特殊字符,或者目录可能为空的场景,可以用带判断的版本,避免误操作:

adb shell 'cd /sdcard/Android/data/my.app.package && latest_file=$(ls -t | head -n 1) && [ -n "$latest_file" ] && rm -f "$latest_file"'

如果需要过滤仅删除文件(排除目录),可以调整为:

adb shell 'find /sdcard/Android/data/my.app.package -maxdepth 1 -type f -exec ls -t {} + | head -n 1 | xargs -d "\n" rm -f'
注意事项
  • 所有需要在安卓设备上执行的管道逻辑,必须用单引号整包放在adb shell之后,避免管道、变量、命令替换被宿主机提前解析执行
  • 如果要删除的是目录而非普通文件,把命令中的rm -f替换为rm -rf即可

内容的提问来源于stack exchange,提问作者nj2237

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:18:02