it-swarm-ru.tech

Что означает звездочка после имени файла при вводе `ls -l`?

Я сделал ls -l внутри каталога, и мои файлы отображаются так:

[email protected]:~/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*

Что означает эта звездочка?

Я также не могу запустить определенный файл, как показано ниже:

[email protected]:~/development/tools/Android-sdk-linux_86/tools$ ./emulator 
bash: ./emulator: No such file or directory

EDIT: Я пытаюсь заставить Eclipse использовать emulator, но он продолжает жаловаться, что файлов не существует, но он здесь?

143
user155695

Игнасио Васкес-Абрамс уже объяснил про * :

Это означает, что файл является исполняемым. Классификатор отображается, когда -F передается в ls через командную строку или иным образом.

Что касается исполняемого файла emulator, который вы на самом деле не можете выполнить, это может произойти, когда динамический загрузчик, запрошенный emulator, не существует. Вы можете проверить, какой тип файла emulator, с помощью команды file emulator, и проверить, какой динамический загрузчик и библиотеки ему нужны с помощью ldd emulator (любая строка с надписью «not found» - это то, что вам нужно установить).

Учитывая имя каталога и размер файла, emulator, вероятно, двоичный файл для Linux x86. Я подозреваю, что у вас есть система AMD64. Если это так, вам нужно установить среду выполнения для 32-битных приложений; в Ubuntu вам нужен пакет ia32-libs (и, возможно, также ia32-libs-gtk).

Вы также можете получить это сообщение об ошибке для сценария, интерпретатор которого, как указано в строке #!, не существует.

64
Gilles

Это означает, что файл является исполняемым. классификатор отображается, когда -F передается ls через командную строку или иным образом.

78
Ignacio Vazquez-Abrams

От 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.
32
user46971

Ubuntu (12.04 и, возможно, другие версии) по умолчанию включает следующие настройки:

alias ll='ls -alF'

И как другие объяснили, -F отвечает за звездочку.

IPython автоматически использует флаг F под капотом (по умолчанию), так что просто ввод ls даст эффект, который вы там видите.

Правка: кстати, вы заявляете, что запускаете ls -l, запуск ll может не совпадать вообще.

21
dk1844

Как уже упоминали несколько других, опция -F для ls помечает исполняемые файлы звездочкой. У вас нет -F в командной строке, но вполне вероятно, что ls был псевдоним. Вы можете проверить псевдонимы в выбранной вами командной консоли (в bash используйте встроенную команду alias для вывода списка псевдонимов) или экранировать команду ls с обратной косой чертой, чтобы отключить псевдонимы.

9
mpez0