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


Я сделал 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, но он продолжает жаловаться, что файлов не существует, но он здесь?


125
2017-08-21 20:21


Источник


Все файлы помечены как исполняемые файлы на разделах NTFS. - Smile4ever
@ Smile4ever, это просто неправда. Это зависит от того, как вы подключили раздел, и по умолчанию он монтируется как полностью исполняемый. То же самое относится к FAT и другим разделам, отличным от Unix. Однако вы также можете хранить разрешения Unix для NTFS, поскольку это совместимо с POSIX askubuntu.com/q/86959/253474  unix.stackexchange.com/q/11757/44425 - phuclv
@ LưuVĩnhPhúc Вы можете монтировать ваш раздел по-другому, да. Но по умолчанию он монтируется как исполняемый файл в большинстве дистрибутивов Linux. Спасибо за разъяснения. - Smile4ever


Ответы:


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

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

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

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

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


52
2017-08-21 21:14



Интересно, я дам то, что вы предложили. Единственное, что меня смущает, это то, что я вчера работал, и с тех пор только перезапустил ...: S - user155695
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory - Dennis Williamson


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


75
2017-08-21 20:27





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

29
2017-08-21 22:24



+1 для обучения рыболовству, а также для рыб. - atoMerz


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

alias ll='ls -alF'

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

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

Изменить: кстати, вы заявляете, что работаете ls -l, Бег ll может быть совсем не то же самое.


20
2017-11-05 16:30



Увлекательный трюк, который вы можете сделать в Bash, введите команду alias'd (например, «ll») и нажмите [Ctrl] + [Alt] + [e]. Он расширит псевдоним, чтобы вы могли видеть, что он на самом деле обрабатывает. (вам может потребоваться несколько раз нажать его, чтобы полностью развернуть) - Adam


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


9
2017-08-22 01:54