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

161

Ich habe ls -lein Verzeichnis erstellt und meine Dateien werden folgendermaßen 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 kann eine bestimmte Datei auch nicht ausführen, wie folgt:

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

EDIT : Ich versuche, Eclipse zu benutzen emulator, aber es klagt immer wieder, dass die Dateien nicht existieren, aber es ist hier?

user155695
quelle
3
Alle Dateien werden auf NTFS-Partitionen als ausführbar markiert.
Smile4ever
@Smile4ever das stimmt einfach nicht. Dies hängt davon ab, wie Sie die Partition gemountet haben. Standardmäßig ist sie als ausführbare Datei gemountet. Gleiches gilt für FAT und andere Nicht-Unix-Partitionen. Sie können aber auch Unix - Berechtigungen auf NTFS speichern , weil es POSIX - kompatibel ist askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv
@ LưuVĩnhPhúc Sie können Ihre Partition anders mounten, ja. Standardmäßig ist es jedoch auf den meisten Linux-Distributionen als ausführbar aktiviert. Danke für die Klarstellung.
Smile4ever

Antworten:

77

Ignacio Vazquez-Abrams hat bereits erklärt* :

Dies bedeutet, dass die Datei ausführbar ist. Ein Klassifikator wird angezeigt, wenn -F über die Befehlszeile oder auf andere Weise an ls übergeben wird.

Was die ausführbare Datei betrifft emulator, die Sie nicht ausführen können, kann dies passieren, wenn der von angeforderte dynamische Lader emulatornicht vorhanden ist. Sie können emulatormit dem Befehl file emulatorüberprüfen, um welche Art von Datei es sich handelt und mit welchen dynamischen Ladeprogrammen und Bibliotheken es sich handelt ldd emulator(jede Zeile mit der Angabe "nicht gefunden" muss installiert werden).

Angesichts des Namens des Verzeichnisses und der Größe der Datei emulatorhandelt es sich wahrscheinlich um eine Linux x86-Binärdatei. Ich vermute, Sie haben ein amd64-System. In diesem Fall müssen Sie eine Laufzeitumgebung für 32-Bit-Anwendungen installieren. Unter Ubuntu benötigen Sie das ia32-libsPaket (und vielleicht auch ia32-libs-gtk).

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

Gilles
quelle
1
Interessant, ich gebe was du vorgeschlagen hast. Das einzige, was mich verwirrt, ist, dass ich dieses gestern laufen hatte und seitdem nur neu gestartet habe ...: S
user155695
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
Dennis Williamson
80

Dies bedeutet, dass die Datei ausführbar ist. Ein Klassifikator wird angezeigt, wenn -Fer lsüber die Befehlszeile oder auf andere Weise übergeben wird.

Ignacio Vazquez-Abrams
quelle
33

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.
user46971
quelle
3
+1 für das Unterrichten des Fischens sowie das Geben des Fisches.
AtoMerz
21

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, -Fist das für den Asterisk verantwortlich.

IPython verwendet automatisch die FFlagge unter der Haube (Standardeinstellung). lsWenn Sie also nur eingeben, wird der Effekt erzeugt, den Sie dort sehen.

Bearbeiten: Übrigens sagst du, dass du rennst ls -l, llvielleicht ist das Rennen überhaupt nicht dasselbe.

dk1844
quelle
7
Ein unterhaltsamer Trick, den Sie in Bash ausführen können, besteht darin, den Alias-Befehl (z. B. "ll") einzugeben und [Strg] + [Alt] + [e] zu drücken. Der Alias ​​wird erweitert, sodass Sie sehen können, was gerade verarbeitet wird. (Sie müssen es möglicherweise ein paar Mal drücken, um es vollständig zu erweitern)
Adam
9

Wie einige andere bereits erwähnt haben, wird die -FOption, lsausführbare Dateien zu markieren, mit dem Sternchen gekennzeichnet. Sie haben kein -Fin Ihrer Befehlszeile, aber es ist wahrscheinlich, dass lses einen Alias ​​gibt. Sie können in der Shell Ihrer Wahl nach Aliasnamen suchen (verwenden Sie in bash den integrierten Befehl, aliasum die Aliasnamen aufzulisten) oder den lsBefehl mit einem Backslash verlassen, um das Aliasing zu deaktivieren.

mpez0
quelle