我尝试了解如何将 Zsh glob 限定符与ls
.
互联网上的一篇文章说,要将文件从最大到最小排序,我可以使用ls *(oL)
.
o<sort>
- 根据值对文件进行排序<sort>
O<sort>
- 类似o
,但按降序排列的值
<sort>
可以是:
n
- 按名称排序(默认)。L
- 按大小排序。l
- 按链接数量排序。a
- 按上次访问排序。m
- 按最后修改排序。c
- 按上次 inode 更改排序。d
- 子目录中的文件出现在前面。N
- 不要排序任何东西。例如:
# Sort files from the smallest to the largest ls *(oL)
但ls *(oL)
不会以这种方式列出文件,ls *(On)
不会按相反的字母顺序列出文件,ls *(om)
不会按修改日期对文件进行排序(如果运行,则没有区别ls *(Om)
)。所有命令都按常规字母顺序(从 A 到 Z)列出文件,仅此而已。似乎ls
忽略了 Zsh 全局变量?
我应该说,在其他情况下,Zsh glob 似乎对我来说工作正常。例如,print -rC1 *(.)
仅打印文件,不打印目录。
zsh 5.9 (x86_64-apple-darwin23.0)
ls
进行自己的排序。要禁用该功能并按给定的方式显示文件(通过 glob 扩展),请-f
在 macOS 上使用:要列出目录而不列出其内容,请添加
-d
. 对于单列输出,添加-1
.