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

Was bedeutet das Sternchen nach einem Dateinamen, wenn Sie `ls -l` eingeben?

Ich habe ein ls -l innerhalb eines Verzeichnisses gemacht, und meine Dateien werden wie folgt angezeigt:

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*

Was bedeutet das Sternchen?

Ich bin auch nicht in der Lage, eine bestimmte Datei auszuführen, wie folgt:

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

EDIT : Ich versuche, Eclipse dazu zu bringen, emulator zu verwenden, aber es beschwert sich ständig, dass die Datei nicht existiert, obwohl sie hier ist?

Antworten (5)

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

Ignacio Vazquez-Abrams hat das * bereits erklärt :

Es bedeutet, dass die Datei ausführbar ist. Ein Klassifikator wird angezeigt, wenn -F über die Kommandozeile oder anderweitig an ls übergeben wird.

Was das ausführbar aussehende emulator betrifft, das Sie nicht wirklich ausführen können, kann dies passieren, wenn der von emulator angeforderte dynamische Lader nicht existiert. Sie können mit dem Befehl emulator prüfen, was für eine Datei file emulator ist, und mit ldd emulator prüfen, welchen dynamischen Lader und welche Bibliotheken sie benötigt (jede Zeile, die “nicht gefunden” anzeigt, ist etwas, das Sie installieren müssen).

Angesichts des Namens des Verzeichnisses und der Größe der Datei ist emulator wahrscheinlich eine Linux x86-Binärdatei. Ich vermute, Sie haben ein amd64-System. Wenn ja, müssen Sie eine Laufzeitumgebung für 32-Bit-Anwendungen installieren; unter Ubuntu benötigen Sie das Paket ia32-libs (und vielleicht auch ia32-libs-gtk).

Sie könnten diese Fehlermeldung auch für ein Skript erhalten, dessen Interpreter, wie in der Zeile #! angegeben, nicht existiert.

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

Es bedeutet, dass die Datei ausführbar ist. Ein classifier wird angezeigt, wenn -F über die Befehlszeile oder anderweitig an ls übergeben wird.

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

Von 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, und wahrscheinlich auch andere Versionen) enthält standardmäßig die folgende Einstellung:

alias ll='ls -alF'

Und wie andere schon erklärt haben, ist -F für den Stern verantwortlich.

IPython verwendet automatisch das F-Flag unter der Haube (standardmäßig), also erzeugt die Eingabe von ls den Effekt, den Sie dort sehen.

Bearbeiten: Sie geben übrigens an, dass Sie ls -l verwenden, die Verwendung von ll ist möglicherweise nicht dasselbe.

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

Wie bereits von mehreren anderen erwähnt, kennzeichnet die Option -F für ls ausführbare Dateien mit dem Sternchen. Sie haben kein -F in Ihrer Befehlszeile, aber es ist wahrscheinlich, dass ls mit einem Alias versehen wurde. Sie können in der Shell Ihrer Wahl nach Aliasen suchen (in der Bash können Sie den eingebauten Befehl alias verwenden, um die Aliase aufzulisten), oder den Befehl ls mit einem Backslash abschließen, um das Aliasing zu deaktivieren.