如何直接枚举当前目录下的文件与目录(替代ls | less -N方法)
给ls输出添加有序编号的直接方法
嘿,这个需求挺实用的!不用通过ls | less -N这种绕路的方式,有好几种更直接的命令可以帮你给ls的输出加上整齐的有序编号,刚好匹配你想要的格式。我给你列几个常用方案:
1. 用nl命令(最简洁的专门工具)
nl是Unix/Linux里专门用来给文本加行号的工具,直接结合ls用就行:
ls | nl -w 1 -s '. '
参数解释:
-w 1:设置行号的宽度为1位(默认是6位,会有多余空格)-s '. ':指定行号和内容之间的分隔符为.(点加空格),正好符合你要的格式。
2. 用awk(灵活度拉满)
awk处理文本的能力很强,一行命令就能搞定:
ls | awk '{print NR ". " $0}'
这里NR代表当前处理的行号,$0是当前行的全部内容,直接拼接输出就得到了你要的带编号列表。
3. Shell循环(适合需要自定义逻辑的场景)
如果你用的是bash/zsh这类shell,也可以用循环来实现,还能安全处理带空格的文件名:
i=1 ls | while read -r item; do echo "$i. $item" ((i++)) done
这个方法的好处是你可以在循环里加更多自定义操作,比如过滤某些文件、修改输出格式等。
这些方法都是直接把结果输出到终端,不像less -N需要进入分页界面再退出,完全符合“更直接”的要求~
内容的提问来源于stack exchange,提问作者Wizard
相关产品推荐
相关产品推荐

