Ejecute Command lsen el directorio actual y obtenga el resultado:
$ ls
Applications Documents Library Music Public
Desktop Downloads Movies Pictures
Me gustaría enumerarlos como:
1. Applications
2. Desktop
3. Documents
4. Downloads
5. Library
6. Movies
7. Music
8. Pictures
9. Public
Esto podría lograrse utilizando lessde manera intermedia
ls | less -N
¿Cómo enumerarlos de una manera directa?
command-line
Cálculo
fuente
fuente

Respuestas:
O simplemente hazlo:
de
man nl:fuente
Debe canalizar la salida de
lsa otro comando. Mi sugerencia es usarawkde esta manera :Tenga en cuenta que el archivo
file\nnewlinecontiene caracteres de nueva línea\nen su nombre que la opción escapa-b.la opción
--group-directories-firstmostrará los directorios antes que los archivos.Otra forma posible es usar for loop (pero en este caso colocar los directorios en el inicio de la lista será más difícil):
fuente
si solo se muestra un número, entonces tiene varias opciones como las siguientes, así como a su
less -Nmanera:Si desea una numeración de salida personalizada, le sugiero que use
findy haga lo que quiera imprimir:POSIXY, harías:
fuente
idebe inicializarse de antemano:i=0; find ...-exec sh -c '....'se ejecuta bajo un shell sh separado.También puede hacer esto completamente con un breve script de Bash:
Incluso puede ser elegante y rellenar el número de línea para obtener más de 9 resultados:
Uso
Suponiendo que guardó el script como un archivo ejecutable
numbered-ls.shen el directorio de trabajo actual:El argumento
DIRECTORYes opcional y por defecto es el directorio de trabajo actual.Explicación
Si se invocó el script con un argumento, cambie el directorio de trabajo a la ruta en el primer argumento.
Haga coincidir todas las entradas del directorio de trabajo actual y mírelas. Para cada entrada, incremente un contador e imprima su valor junto con el nombre de la entrada. Los caracteres de salto de línea en el nombre de la entrada se reemplazan con
^N.Canalice la salida
cat -vtpara tratar con gracia los nombres de archivo que contienen caracteres no imprimibles que el terminal puede interpretar como caracteres de control.fuente