236 votes

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

J'ai exécuté un ls -l à l'intérieur d'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 ne parviens pas non plus à exécuter un fichier particulier, comme suit :

james@nevada:~/development/tools/android-sdk-linux_86/tools$ ./emulator 
bash: ./emulator: Aucun fichier ou dossier de ce type

MODIFICATION : J'essaie de faire en sorte qu'Eclipse utilise emulator, mais il continue à se plaindre que le fichier n'existe pas, alors qu'il est bien là ?

5 votes

Tous les fichiers sont marqués comme exécutables sur les partitions NTFS.

0 votes

@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 tout exécutable. Il en va de même pour les partitions FAT et autres partitions non Unix. Cependant, vous pouvez aussi stocker les autorisations Unix sur NTFS car il est compatible POSIX askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425

0 votes

@LuuVinhPhúc Vous pouvez monter votre partition différemment, oui. Mais par défaut, elle est montée comme exécutable sur la plupart des distributions Linux. Merci pour la clarification.

129voto

Ignacio Vazquez-Abrams a déjà expliqué à propos de *:

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

Quant à l'émulateur qui semble exécutable mais que vous ne pouvez pas réellement exécuter, cela peut se produire lorsque le chargeur dynamique demandé par émulateur n'existe pas. Vous pouvez vérifier quel type de fichier est émulateur avec la commande fichier émulateur, et vérifier quel chargeur dynamique et quelles bibliothèques il nécessite avec ldd émulateur (toute ligne affichant “non trouvé” est quelque chose que vous devez installer).

Compte tenu du nom du répertoire et de la taille du fichier, émulateur 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 pouvez également obtenir ce message d'erreur pour un script dont l'interpréteur indiqué dans la ligne #! n'existe pas.

1 votes

Intéressant, je vais essayer ce que vous avez suggéré. La seule chose qui me perturbe, c'est que je l'avais fait tourner hier, et depuis lors, je l'ai seulement redémarré... :S

0 votes

-bash: ./badshebang: /bin/xyzzy: mauvais interprète: Aucun fichier ou dossier de ce type

92voto

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

50voto

TimothyC Points 543

De info ls:

`-F'
`--classify'
`--indicator-style=classify'
     Ajoute un caractère à chaque nom de fichier indiquant le type de fichier.
     De plus, pour les fichiers réguliers exécutables, ajoute `*'. Les indicateurs de type de fichier sont `/' pour les répertoires, `@' pour les liens symboliques, `|' pour les FIFO, `=' pour les sockets, `>' pour les portes, et rien pour les fichiers réguliers.

29voto

netcrash Points 452

Ubuntu (12.04, et probablement d'autres versions également) inclut le paramètre suivant 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 en interne (par défaut), donc en entrant simplement ls, vous obtiendrez l'effet que vous voyez ici.

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

12 votes

Un tour amusant que vous pouvez faire dans Bash est de taper la commande aliasée (par exemple "ll") et d'appuyer sur [Ctrl]+[Alt]+[e]. Cela va étendre l'alias pour que vous puissiez voir ce qu'il traite réellement. (vous devrez peut-être appuyer plusieurs fois pour l'étendre complètement)

14voto

mpez0 Points 2721

Comme plusieurs l'ont mentionné, l'option -F pour la commande ls affichera les exécutables avec un astérisque. Vous n'avez pas de -F dans votre ligne de commande, mais il est probable que ls ait été aliassé. Vous pouvez vérifier les alias dans votre shell préféré (dans bash, utilisez la commande intégrée alias pour lister les alias), ou échappez la commande ls avec un backslash pour désactiver l'aliasing.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X