O que o asterisco significa após um nome de arquivo quando você digita 'ls -l'?

128

Eu fiz um ls -l dentro de um diretório e meus arquivos estão sendo exibidos assim:

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*

O que significa esse asterisco?

Eu também não consigo executar um arquivo específico, como segue:

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

EDIT : Estou tentando fazer com que o Eclipse use emulator , mas ele continua reclamando que os arquivos não existem, mas está aqui?

    
por user155695 21.08.2010 / 22:21

5 respostas

53

Ignacio Vazquez-Abrams já explicou sobre o * :

It means that the file is executable. A classifier is shown when -F is passed to ls via the command line or otherwise.

Quanto ao emulator de aparência executável que você não pode realmente executar, isso pode acontecer quando o carregador dinâmico solicitado por emulator não existe. Você pode verificar que tipo de arquivo emulator é com o comando file emulator e verificar que carregador dinâmico e bibliotecas ele precisa com ldd emulator (qualquer linha mostrando "não encontrado" é algo que você precisa instalar).

Dado o nome do diretório e o tamanho do arquivo, emulator é provavelmente um binário do Linux x86. Eu suspeito que você tenha um sistema amd64. Nesse caso, você precisa instalar um ambiente de tempo de execução para aplicativos de 32 bits; no Ubuntu, você precisa do pacote ia32-libs (e talvez também ia32-libs-gtk ).

Você também pode receber essa mensagem de erro para um script cujo intérprete, conforme indicado na linha #! , não existe.

    
por 21.08.2010 / 23:14
77

Isso significa que o arquivo é executável. Um classificador é mostrado quando -F é passado para ls através da linha de comando ou de outra forma.

    
por 21.08.2010 / 22:27
29

De 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.
    
por 22.08.2010 / 00:24
20

O Ubuntu (12.04 e provavelmente outras versões também) inclui a seguinte configuração por padrão:

alias ll='ls -alF'

E, como outros explicaram, -F é responsável pelo asterisco.

O IPython usa automaticamente o F flag under the hood (por padrão), portanto, apenas inserir ls produzirá o efeito que você está vendo lá.

Editar: por sinal, você está informando que está executando ls -l , a execução de ll pode não ser a mesma.

    
por 05.11.2012 / 17:30
9

Como vários outros mencionaram, a opção -F para ls marcará executáveis com o asterisco. Você não tem um -F em sua linha de comando, mas é provável que ls tenha sido aliado. Você pode verificar aliases no shell de sua escolha (no bash, use o comando interno alias para listar os aliases) ou escape do comando ls com uma barra invertida para desabilitar o aliasing.

    
por 22.08.2010 / 03:54

Tags