android 7.1 找不到 ll (ls -l)命令
16lz
2021-01-24
平台
rk3288 + android 7.12
描述
在使用android 5.1 时, 在adb shell 下, 可以使用ls 和 ll 命令, 但在7.1中, 发现 ll 命令无法使用:/system/bin/sh: ll: not found
分析
在linux下, ll 命令的是由alias产生的, 它的宿主是ls:
alias ll=‘ls -l’
在android 中应该也是这样的, 在搜索5.1系统文件内容时, 找到了文件: /system/etc/mkshrc
基中对ll 的定义如下:
# Copyright (c) 2010, 2012, 2013, 2014#Thorsten Glaser # This file is provided under the same terms as mksh.#-# Minimal /system/etc/mkshrc for Android## Support: https://launchpad.net/mksh...alias l='ls'alias la='l -a'alias ll='l -l'alias lo='l -a -l'
mkshrc文件存放于external目录下:
$ ls external/mksh/
Android.mk Makefrag.inc mkmf.sh mkshrc MODULE_LICENSE_BSD_LIKE NOTICE src
而在7.1中的mkshrc中, 并没有找到 ll 命令相关的定义.
解决
只需要把相应的 ll 定义加到 mkshrc中即可.
# Copyright (c) 2010, 2012, 2013, 2014#Thorsten Glaser # This file is provided under the same terms as mksh.#-# Minimal /system/etc/mkshrc for Android## Support: https://launchpad.net/mksh: ${HOSTNAME:=$(getprop ro.product.device)}: ${HOSTNAME:=android}: ${TMPDIR:=/data/local/tmp}export HOSTNAME TMPDIRif (( USER_ID )); then PS1='$'; else PS1='#'; fiPS4='[$EPOCHREALTIME] '; PS1='${|local e=$?(( e )) && REPLY+="$e|"return $e}$HOSTNAME:${PWD:-?} '"$PS1 "#add-startalias l='ls'alias la='l -a'alias ll='l -l'alias lo='l -a -l'alias find='busybox find'#add-end
find 命令也比较常用, 所以我也把它加进去
更多相关文章
- Android(安卓)U盘文件显示在文件管理器
- Android圆形头像的绘制(二)之自定义视图
- 【转】eclipse 上调试android的自带应用方法
- 如何获得Android设备名称(ADB命令详细介绍)
- 通过ADB命令行卸载或删除你的Android设备中的应用
- Qt for android 在中英文不同的环境下自动识别更换APP和应用程序
- Android(安卓)2.2开始resources.arsc有改变
- Android绘图系列(一)——自定义View基础
- Unity3D游戏开发之Unity与Android交互调用研究