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

161

J'ai créé ls -lun répertoire 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 qu'Eclipse soit utilisé emulator, mais il n'arrête pas de se plaindre car les fichiers n'existent pas, mais est-il ici?

utilisateur155695
la source
3
Tous les fichiers sont marqués comme exécutables sur des partitions NTFS.
Smile4ever
@ Smile4ever, ce n'est tout simplement pas vrai. Cela dépend de la manière dont vous avez monté la partition et par défaut, elle est montée comme étant tout exécutable. La même chose s'applique à FAT et à d'autres partitions non Unix. Cependant , vous pouvez également stocker des autorisations Unix sur NTFS , car il est compatible POSIX askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv
@ LưuVĩnhPhúc Vous pouvez monter votre partition différemment, oui. Mais par défaut, il est monté comme exécutable sur la plupart des distributions Linux. Merci pour la clarification.
Smile4ever

Réponses:

77

Ignacio Vazquez-Abrams a déjà expliqué ce qui suit* :

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 l'exécutable emulatorque vous ne pouvez pas exécuter, cela peut se produire lorsque le chargeur dynamique demandé par emulatorn'existe pas. Vous pouvez vérifier le type de fichier emulatorassocié à la commande file emulator, ainsi que le chargeur dynamique et les bibliothèques dont il a besoin 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, il emulators'agit probablement d'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 ia32-libspaquet (et peut-être aussi 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.

Gilles
la source
1
Intéressant, je vais donner ce que vous avez suggéré un coup de feu. La seule chose qui m'embrouille, c'est que je courais hier et que depuis, je n'ai que redémarré ...: S
user155695 Le
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
Dennis Williamson
80

Cela signifie que le fichier est exécutable. Un classifieur est affiché lorsqu'il -Fest passé lsvia la ligne de commande ou autrement.

Ignacio Vazquez-Abrams
la source
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.
utilisateur46971
la source
3
+1 pour enseigner la pêche et donner le poisson.
atoMerz
21

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é, -Fest responsable de l'astérisque.

IPython utilise automatiquement le Fdrapeau sous le capot (par défaut), il vous suffit donc d'entrer lspour produire l'effet que vous voyez à cet endroit.

Edit: au fait, vous dites que vous courez ls -l, courir llpeut ne pas être du tout.

dk1844
la source
7
Une astuce amusante que vous pouvez faire dans Bash est de taper la commande alias'd (par exemple, "ll") et d’appuyer sur [Ctrl] + [Alt] + [e]. Cela élargira l'alias pour que vous puissiez voir ce qu'il traite réellement. (vous devrez peut-être appuyer plusieurs fois pour développer pleinement)
Adam
9

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

mpez0
la source