Enumere los directorios con los directorios de puntos al final y luego los archivos de puntos

Enumere los directorios con los directorios de puntos al final y luego los archivos de puntos

Conozco la lsopción --group-directories-first, pero eso no es exactamente lo que quiero lograr.

La salida debería ser: (ordenada por nombre ASC)

  • Directorios
  • Directorios ocultos
  • Archivos ocultos

Respuesta1

Con GNU ls(la -Uopción para indicar lsque no se ordene la lista de archivos es una extensión de GNU):

ls -lUd -- *(/) .*(/) .*(^/)

Sin embargo, el problema es que si alguno de esos globos no coincide, el comando se cancelará, por lo que puedes hacer:

myls() (
  setopt cshnullglob
  ls -lUd -- *(/) .*(/) .*(^/)
)

Eso emula el cshcomportamiento por el cual los globos que no coinciden se expanden a nada siempre que haya al menos un globo que se expanda a algo en el comando.

Tenga en cuenta que zshlos globos nunca se expanden .y .., por lo que esos dos nunca se incluirán.

información relacionada