web-dev-qa-db-fra.com

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

J'ai créé un ls -l dans un répertoire et mes fichiers s'affichent comme suit:

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'est-ce que cet astérisque signifie?

Je ne parviens pas non plus à 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 que Eclipse utilise emulator, mais il continue de se plaindre car les fichiers n'existent pas, mais est-il ici?

143
user155695

Ignacio Vazquez-Abrams a déjà expliqué 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.

En ce qui concerne la emulator à l'apparence exécutable que vous ne pouvez pas exécuter, cela peut se produire lorsque le chargeur dynamique demandé par emulator n'existe pas. Vous pouvez vérifier le type de fichier emulator avec la commande file emulator, ainsi que le chargeur dynamique et les bibliothèques dont il a besoin avec ldd emulator (toute ligne indiquant «introuvable» 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 tel est le cas, vous devez installer un environnement d'exécution pour les applications 32 bits. sur Ubuntu, vous avez besoin du paquetage ia32-libs (et peut-être aussi de ia32-libs-gtk).

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

64
Gilles

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

78

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.
32
user46971

Ubuntu (12.04, et probablement d’autres versions également) inclut les paramètres suivants par défaut:

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), il vous suffit donc d'entrer ls pour produire l'effet que vous voyez à cet endroit.

Edit: en passant, vous déclarez que vous utilisez ls -l, exécuter ll peut ne pas être du tout.

21
dk1844

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

9
mpez0