Question Que signifie l'astérisque après un nom de fichier lorsque vous tapez `ls -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

MODIFIER : J'essaie d'utiliser Eclipse emulator, mais il continue de se plaindre que les fichiers n’existent pas, pourtant c’est ici?


126
2017-08-21 20:21


origine


Tous les fichiers sont marqués comme exécutables sur des partitions NTFS. - Smile4ever
@ Smile4ever c'est tout simplement pas vrai. Cela dépend de la façon dont vous avez monté la partition et, par défaut, elle est montée sur tout exécutable. Il en va de même pour les partitions FAT et autres partitions non Unix. Cependant, vous pouvez également stocker les 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:


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

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'exécutable emulator que vous ne pouvez pas réellement exécuter, cela peut se produire lorsque le chargeur dynamique demandé par emulator n'existe pas. Vous pouvez vérifier quel type de fichier emulator est à la commande file emulator, et vérifiez le chargeur dynamique et les bibliothèques dont il a besoin ldd emulator (Toute ligne affichant "non trouvé" 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 pense 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 de la ia32-libs paquet (et peut-être aussi ia32-libs-gtk).

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


52
2017-08-21 21:14



Intéressant, je donnerai ce que vous avez suggéré un coup de feu. La seule chose qui me dérange, c'est que j'ai eu cette course hier, et depuis lors, j'ai seulement redémarré ...: S - user155695
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory - Dennis Williamson


Cela signifie que le fichier est exécutable. UNE classificateur est montré quand -F est passé à ls via la ligne de commande ou autrement.


77
2017-08-21 20:27





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.

29
2017-08-21 22:24



+1 pour enseigner la pêche et donner le poisson. - atoMerz


Ubuntu (12.04, et probablement d'autres versions) 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 F drapeau sous le capot (par défaut), il suffit d'entrer ls produira l'effet que vous voyez là.

Edit: au fait, vous déclarez que vous courez ls -l, fonctionnement ll peut ne pas être le même du tout.


20
2017-11-05 16:30



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


Comme plusieurs autres l’ont mentionné, le -F option à 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 a été aliasé. Vous pouvez vérifier les alias dans votre shell de choix (en bash, utilisez la commande intégrée alias pour lister les alias), ou échapper à la ls commande avec une barre oblique inverse pour désactiver l'aliasing.


9
2017-08-22 01:54