Com GNU ls
(a opção -U
para informar ls
para não classificar a lista de arquivos é uma extensão GNU):
ls -lUd -- *(/) .*(/) .*(^/)
O problema é que, se algum desses globs não corresponder, o comando será cancelado, então você pode fazer:
myls() (
setopt cshnullglob
ls -lUd -- *(/) .*(/) .*(^/)
)
Que emula o comportamento csh
, pelo qual as globs sem correspondência se expandem para nada, desde que haja pelo menos uma glob que se expanda para algo no comando.
Observe que zsh
globs nunca expande .
e ..
, então esses dois nunca serão incluídos.