¿Qué significa el asterisco después de un nombre de archivo cuando escribe `ls -l`?

161

Hice un ls -ldentro de un directorio, y mis archivos se muestran así:

james@nevada:~/development/tools/android-sdk-linux_86/tools$ ll
total 9512
drwxr-xr-x 3 james james    4096 2010-05-07 19:48 ./
drwxr-xr-x 6 james james    4096 2010-08-21 20:43 ../
-rwxr-xr-x 1 james james  341773 2010-05-07 19:47 adb*
-rwxr-xr-x 1 james james    3636 2010-05-07 19:47 android*
-rwxr-xr-x 1 james james    2382 2010-05-07 19:47 apkbuilder*
-rwxr-xr-x 1 james james    3265 2010-05-07 19:47 ddms*
-rwxr-xr-x 1 james james   89032 2010-05-07 19:47 dmtracedump*
-rwxr-xr-x 1 james james    1940 2010-05-07 19:47 draw9patch*
-rwxr-xr-x 1 james james 6886136 2010-05-07 19:47 emulator*
-rwxr-xr-x 1 james james  478199 2010-05-07 19:47 etc1tool*
-rwxr-xr-x 1 james james    1987 2010-05-07 19:47 hierarchyviewer*
-rwxr-xr-x 1 james james   23044 2010-05-07 19:47 hprof-conv*
-rwxr-xr-x 1 james james    1939 2010-05-07 19:47 layoutopt*
drwxr-xr-x 4 james james    4096 2010-05-07 19:48 lib/
-rwxr-xr-x 1 james james   16550 2010-05-07 19:47 mksdcard*
-rw-r--r-- 1 james james  205851 2010-05-07 19:48 NOTICE.txt
-rw-r--r-- 1 james james      33 2010-05-07 19:47 source.properties
-rwxr-xr-x 1 james james 1447936 2010-05-07 19:47 sqlite3*
-rwxr-xr-x 1 james james    3044 2010-05-07 19:47 traceview*
-rwxr-xr-x 1 james james  187965 2010-05-07 19:47 zipalign*

¿Qué significa ese asterisco?

Tampoco puedo ejecutar un archivo en particular, de la siguiente manera:

james@nevada:~/development/tools/android-sdk-linux_86/tools$ ./emulator 
bash: ./emulator: No such file or directory

EDITAR : Estoy tratando de usar Eclipse emulator, pero sigue quejándose de que los archivos no existen, ¿pero está aquí?

usuario155695
fuente
3
Todos los archivos están marcados como ejecutables en particiones NTFS.
Smile4ever
@ Smile4ever eso simplemente no es cierto. Depende de cómo haya montado la partición y, de forma predeterminada, está montada como todo ejecutable. Lo mismo se aplica a FAT y otras particiones no Unix. Sin embargo, también puede almacenar permisos Unix en NTFS porque es compatible con POSIX askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv
@ LưuVĩnhPhúc Puede montar su partición de manera diferente, sí. Pero por defecto está montado como ejecutable en la mayoría de las distribuciones de Linux. Gracias por la aclaración.
Smile4ever

Respuestas:

77

Ignacio Vázquez-Abrams ya ha explicado sobre* :

Significa que el archivo es ejecutable. Se muestra un clasificador cuando se pasa -F a ls a través de la línea de comando o de otra manera.

En cuanto al aspecto ejecutable emulatorque realmente no puede ejecutar, esto puede suceder cuando el cargador dinámico solicitado por emulatorno existe. Puede verificar qué tipo de archivo emulatorestá con el comando file emulatory con qué cargador dinámico y bibliotecas necesita ldd emulator(cualquier línea que muestre "no encontrado" es algo que necesita instalar).

Dado el nombre del directorio y el tamaño del archivo, emulatores probablemente un binario Linux x86. Sospecho que tienes un sistema amd64. Si es así, debe instalar un entorno de tiempo de ejecución para aplicaciones de 32 bits; en Ubuntu, necesitas el ia32-libspaquete (y quizás también ia32-libs-gtk).

También puede obtener este mensaje de error para un script cuyo intérprete como se indica en la #!línea no existe.

Gilles
fuente
1
Interesante, le daré una oportunidad a lo que sugirió. Lo único que me confunde es que ayer tuve esto funcionando, y desde entonces solo he reiniciado ...: S
user155695
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
Dennis Williamson
80

Significa que el archivo es ejecutable. Se muestra un clasificador cuando -Fse pasa a lstravés de la línea de comando o de otra manera.

Ignacio Vazquez-Abrams
fuente
33

De info ls:

`-F'
`--classify'
`--indicator-style=classify'
     Append a character to each file name indicating the file type.
     Also, for regular files that are executable, append `*'.  The file
     type indicators are `/' for directories, `@' for symbolic links,
     `|' for FIFOs, `=' for sockets, `>' for doors, and nothing for
     regular files.
user46971
fuente
3
+1 para enseñar a pescar y también para dar pescado.
atoMerz
21

Ubuntu (12.04, y probablemente otras versiones también) incluye la siguiente configuración por defecto:

alias ll='ls -alF'

Y como otros han explicado, -Fes responsable del asterisco.

IPython usa automáticamente la Fbandera debajo del capó (por defecto), por lo que solo ingresar lsproducirá el efecto que está viendo allí.

Editar: por cierto, estás diciendo que estás corriendo ls -l, llpuede que correr no sea lo mismo en absoluto.

dk1844
fuente
77
Un truco divertido que puedes hacer en Bash es escribir el comando alias'd (por ejemplo, "ll") y presionar [Ctrl] + [Alt] + [e]. Expandirá el alias para que pueda ver lo que realmente está procesando. (es posible que deba presionarlo varias veces para expandirse por completo)
Adam
9

Como varios otros han mencionado, la -Fopción lsmarcará ejecutables con el asterisco. No tiene un -Fen su línea de comando, pero es probable que lshaya sido alias. Puede verificar los alias en su shell de elección (en bash, use el comando incorporado aliaspara enumerar los alias), o escapar del lscomando con una barra invertida para deshabilitar el alias.

mpez0
fuente