137

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

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*

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

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

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

РЕДАКТИРОВАТЬ : я пытаюсь заставить Eclipse использовать emulator , но он продолжает жаловаться, что файлов не существует, но он здесь?

5 ответов5

77

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

59

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

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

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

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

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

31

Из 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.
20

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

alias ll='ls -alF'

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

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

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

9

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .