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

如何用bash的ls命令仅列出以特定字符开头的文件和目录?

列出/etc目录下以字母'a'开头的项目的几种方法

1. 直接用Shell通配符(最简便高效)

不需要写脚本,一条命令就能搞定:

ls -d /etc/a*
  • -d 参数确保只显示项目本身,不会展开目录里的内容
  • a* 是Shell通配符,匹配所有以字母'a'开头的非隐藏项目

如果要包含以'.a'开头的隐藏项目,可以这样:

ls -d /etc/a* /etc/.a*

2. 改进你的循环脚本

你当前的脚本只是遍历/etc下所有项目,没有筛选逻辑。可以直接用通配符遍历目标项目,避免ls输出带来的文件名分割问题(比如文件名含空格时会出错):

for item in /etc/a*; do
    echo "$item"
done

要包含隐藏项目的话,扩展通配符范围即可:

for item in /etc/a* /etc/.a*; do
    echo "$item"
done

3. 用find命令(适合复杂筛选场景)

如果需要更灵活的筛选(比如区分文件/目录、递归查找等),可以用find:

# 只查找/etc下一级的a开头项目(不递归子目录)
find /etc -maxdepth 1 -name "a*" -print

# 包含隐藏项目的写法
find /etc -maxdepth 1 \( -name "a*" -o -name ".a*" \) -print

# 只筛选以a开头的目录
find /etc -maxdepth 1 -type d -name "a*" -print

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:40:30