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

Wat betekent de asterisk achter een bestandsnaam als je `ls -l` typt?

Ik heb een ls -l in een directory gedaan, en mijn bestanden worden als volgt weergegeven :

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*

Wat betekent dat sterretje?

Ik kan ook een bepaald bestand niet uitvoeren, als volgt:

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

EDIT : Ik probeer Eclipse emulator te laten gebruiken, maar het blijft klagen dat het bestand niet bestaat, terwijl het er wel is?

Antwoorden (5)

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

Ignacio Vazquez-Abrams heeft al uitgelegd over de * ](https://superuser.com/questions/178786/what-does-the-asterisk-mean-after-a-filename-if-you-do-ls-l/178789#178789):

Het betekent dat het bestand uitvoerbaar is. Een classifier wordt getoond wanneer -F wordt doorgegeven aan ls via de opdrachtregel of anderszins.

Wat betreft het uitvoerbaar uitziende emulator dat u niet echt kunt uitvoeren, dit kan gebeuren wanneer de dynamische lader die door emulator wordt opgevraagd niet bestaat. Je kunt controleren wat voor bestand emulator is met het commando file emulator, en welke dynamische lader en bibliotheken het nodig heeft met ldd emulator (elke regel met “not found” is iets dat je moet installeren).

Gezien de naam van de directory en de grootte van het bestand, is emulator waarschijnlijk een Linux x86 binary. Ik vermoed dat je een amd64 systeem hebt. Als dat zo is, moet je een runtime omgeving voor 32-bit applicaties installeren; op Ubuntu heb je het ia32-libs pakket nodig (en misschien ook ia32-libs-gtk).

Je zou deze foutmelding ook kunnen krijgen voor een script waarvan de interpreter zoals aangegeven in de #! regel niet bestaat.

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

Het betekent dat het bestand uitvoerbaar is. Een classifier wordt getoond wanneer -F via de commandoregel of anderszins wordt doorgegeven aan ls.

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

Van 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, en waarschijnlijk ook andere versies) heeft standaard de volgende instelling:

alias ll='ls -alF'

En zoals anderen al hebben uitgelegd, is -F verantwoordelijk voor de asterisk.

IPython gebruikt automatisch de F vlag onder de motorkap (standaard), dus gewoon ls invoeren zal het effect produceren dat je daar ziet.

Edit: tussen haakjes, je geeft aan dat je ls -l gebruikt, ll gebruiken is misschien helemaal niet hetzelfde.

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

Zoals verschillende anderen al hebben vermeld, zal de -F optie voor ls uitvoerbare bestanden markeren met het sterretje. Je hebt geen -F in je commandoregel, maar het is waarschijnlijk dat ls aliased is. U kunt controleren op aliassen in de shell van uw keuze (in bash, gebruik het ingebouwde commando alias om de aliassen op te sommen), of escape het ls commando met een backslash om aliassen uit te schakelen.