android 7.1 找不到 ll (ls -l)命令

在Android7.1系统中,发现ll命令无法使用。本文分析了该问题的原因,并提供了解决方案,只需在mkshrc文件中添加ll命令的定义即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平台

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 <tg@mirbsd.org>
# 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 <tg@mirbsd.org>
# 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 TMPDIR

if (( USER_ID )); then PS1='$'; else PS1='#'; fi
PS4='[$EPOCHREALTIME] '; PS1='${|
	local e=$?

	(( e )) && REPLY+="$e|"

	return $e
}$HOSTNAME:${PWD:-?} '"$PS1 "

#add-start
alias l='ls'
alias la='l -a'
alias ll='l -l'
alias lo='l -a -l'
alias find='busybox find'
#add-end

find 命令也比较常用, 所以我也把它加进去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值