¿Qué significan los símbolos mostrados por ls -F?

62

Noté que si ejecuto ls -F en un directorio, algunas de las entradas tienen un * o un @ después de ellas.

spuder@ubuntu:~$ ls -F /sbin
acpi_available*   getpcaps*           lvmconf*                 ntfscp*        start-stop-daemon*
agetty*           getty*              lvmdiskscan@             ntfslabel*     status@
alsa*             halt@               lvmdump*                 ntfsresize*    stop@
alsactl*          hdparm*             lvmsadc@    

spuder@ubuntu:~$ ls -F ~
daq-0.6.1/  examples.desktop       noname-cache.lib  snort-2.9.1/   Templates/
Desktop/    jpgraph-1.27.1/        noname.sch        snortfiles/    Ubuntu One/
Documents/  

Según las páginas de manual de ls

spuder@ubuntu:~$ man ls
...
-F, --classify
  append indicator (one of */=>@|) to entries
...

Supongo que eso @significa enlace simbólico,

¿Qué significan estos otros indicadores ( */=>@|)?

Spuder
fuente
2
¿Has pensado en mirar la página del manual?
mdpc
23
Él tiene. De hecho, publicó un extracto de la página de manual. La lsdocumentación completa , incluida la información sobre los símbolos que se muestran ls -F, se encuentra en un manual de Texinfo. ( info ls)
1
En una nota lateral, desde manuales Texinfo generalmente se sienten extraños y extranjeros, es común para mantener alrededor de funciones como las siguientes: infos () { info --vi-keys --subnodes -o - "$@" | less; }.
1
@EvanTeitelman Esta es una gran información, tendré info foo --vi-keysen cuenta. Desafortunadamente, la sintaxis que mencionó no funciona para mí (infos () {info --vi-keys ...}
spuder
1
@spuder: es una función; tienes que llamarlo infos ls. La $@parte pasa todos los argumentos de la función a info. Puede poner esta función en su ~/.bashrcarchivo para su uso posterior.

Respuestas:

68

ls -Fagrega símbolos a los nombres de archivo. Estos símbolos muestran información útil sobre archivos.

Si desea que este comportamiento sea la predeterminada, añadir esto a la configuración de la shell: alias ls='ls -F'.

Comunidad
fuente
10
no realias comandos, puede romper scripts mal escritos. He alias ltener -F y color, y lltambién tener -l
ctrl-alt-delor
En Android obtengo una salida completamente de dos columnas. Obtengo el nombre de archivo o el nombre del directorio y ANTES del nombre hay un signo menos si es un archivo, o una "d" si es un directorio, o un "ld" si es un enlace. ¡Es un desastre que las Linux sean tan inconsistentes!
Elmue
1

Solo para agregar cómo encontré esta información. Como se indica en la parte inferior de man ls:

Documentación completa en: https://www.gnu.org/software/coreutils/ls o disponible localmente a través de: info '(coreutils) ls invocation'

Después de esto, vemos

'-F' '--classify' '--indicator-style = classify' Añade un carácter a cada nombre de archivo que indique el tipo de archivo. Además, para los archivos normales que son ejecutables, agregue '*'. Los indicadores de tipo de archivo son '/' para directorios, '@' para enlaces simbólicos, '|' para FIFOs, '=' para sockets, '>' para puertas y nada para archivos normales. No siga los enlaces simbólicos enumerados en la línea de comando a menos que se especifiquen las opciones --dereference-command-line (-H), --dereference (-L) o --dereference-command-line-symlink-to-dir.

en https://www.gnu.org/software/coreutils/manual/coreutils.html#ls-invocation

flow2k
fuente