2010-08-21 20:21:57 +0000 2010-08-21 20:21:57 +0000
167
167

Que signifie l'astérisque après un nom de fichier lorsque vous tapez "s -l" ?

J'ai fait un ls -l dans un répertoire, et mes fichiers s'affichent comme ceci :

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*

Que signifie cet astérisque ?

Je suis également incapable d'exécuter un fichier particulier, comme suit :

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

EDIT : J'essaie de faire en sorte qu'Eclipse utilise emulator, mais il n'arrête pas de se plaindre que les fichiers n'existent pas, et pourtant il est là ?

Réponses (5)

81
81
81
2010-08-21 21:14:02 +0000

Ignacio Vazquez-Abrams a déjà expliqué ce qu'était le * :

Cela signifie que le fichier est exécutable. Un classificateur est affiché lorsque -F est passé à ls via la ligne de commande ou autrement.

Comme pour le emulator d'apparence exécutable que vous ne pouvez pas réellement exécuter, cela peut arriver lorsque le chargeur dynamique demandé par emulator n'existe pas. Vous pouvez vérifier quel est le type de fichier emulator avec la commande file emulator, et vérifier de quel chargeur dynamique et de quelles bibliothèques il a besoin avec ldd emulator (toute ligne indiquant “not found” est quelque chose que vous devez installer).

Étant donné le nom du répertoire et la taille du fichier, emulator est probablement un binaire Linux x86. Je soupçonne que vous avez un système amd64. Si c'est le cas, vous devez installer un environnement d'exécution pour les applications 32 bits ; sur Ubuntu, vous avez besoin du paquet ia32-libs (et peut-être aussi ia32-libs-gtk).

Vous pourriez également obtenir ce message d'erreur pour un script dont l'interpréteur indiqué dans la ligne #! n'existe pas.

80
80
80
2010-08-21 20:27:26 +0000

Cela signifie que le fichier est exécutable. Un classificateur est affiché lorsque -F est passé à ls via la ligne de commande ou autrement.

35
35
35
2010-08-21 22:24:06 +0000

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.
``` :
21
21
21
2012-11-05 16:30:44 +0000

Ubuntu (12.04, et probablement d'autres versions aussi) inclut par défaut le réglage suivant :

alias ll='ls -alF'

Et comme d'autres l'ont expliqué, -F est responsable de l'astérisque.

IPython utilise automatiquement le drapeau F sous le capot (par défaut), donc le simple fait d'entrer ls produira l'effet que vous voyez là.

Edit : au fait, vous indiquez que vous exécutez ls -l, exécuter ll peut ne pas être du tout la même chose.

9
9
9
2010-08-22 01:54:36 +0000

Comme plusieurs autres l'ont mentionné, l'option -F à ls signalera les exécutables avec l'astérisque. Vous n'avez pas de -F dans votre ligne de commande, mais il est probable que ls a été aliasé. Vous pouvez vérifier les alias dans le shell de votre choix (en bash, utilisez la commande intégrée alias pour lister les alias), ou échapper à la commande ls avec une barre oblique inverse pour désactiver l'alias.