lsno tiene ninguna opción para hacer eso, pero una de las cosas buenas de unix y linux es que las tuberías largas y poco elegantes pueden convertirse fácilmente en un script, función o alias de shell. y estos, a su vez, pueden usarse en tuberías como cualquier otro programa.
(NOTA: existen algunos problemas de alcance con las funciones y los alias. Los scripts están disponibles para cualquier ejecutable que pueda leerlos y ejecutarlos. Los alias y las funciones solo están disponibles en el shell actual, aunque el .profile / .bashrc, etc. de un sub-shell puede redefinir y así ponerlos a disposición. Además, se puede escribir un script en cualquier idioma, incluidos bash / sh, awk, perl, python y otros, el que sea mejor para el trabajo o con el que esté más familiarizado)
p.ej
alias lsf='find . -maxdepth 1 -type f -print0 | xargs -0r ls'
He agregado xargs para que pueda usar todas las lsopciones habituales , p. Ej.lsf -lrS
Debido a que usa find, se mostrarán todos los archivos de puntos normalmente ocultos, y todos los nombres de archivo tendrán el prefijo ./, esa es la única diferencia que notará.
Podría excluir archivos de puntos con, ! -iname '.*'pero luego tendría que tener dos versiones del alias: una que mostrara archivos de puntos y otra que no.
alias lsf2='find . -maxdepth 1 -type f -a ! -iname '\''.*'\'' -print0 | xargs -0r ls'
Alternativamente, si lsffuera un script en lugar de un alias, podría analizar las opciones (tal vez con getopts o / usr / bin / getopt o similar), y excluir los archivos de puntos a menos que -aestuvieran presentes.
findcomando es la mejor manera de hacer lo que quieres. ¡Para algunas otras opciones confiables, debe buscar comandos específicos de shell (y esos son cualquier cosa menos portátiles)!