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


161

Eu fiz um ls -ldentro 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?

Também não consigo executar um arquivo específico, da seguinte maneira:

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?


3
Todos os arquivos são marcados como executáveis ​​em partições NTFS.
Smile4ever

@ Smile4ever que simplesmente não é verdade. Depende de como você montou a partição e, por padrão, ela é montada como totalmente executável. O mesmo se aplica ao FAT e outras partições não-Unix. No entanto, você também pode armazenar permissões do Unix no NTFS porque é compatível com POSIX, askubuntu.com/q/86959/253474 unix.stackexchange.com/q/11757/44425
phuclv

@ LưuVĩnhPhúc Você pode montar sua partição de forma diferente, sim. Mas, por padrão, é montado como executável na maioria das distribuições Linux. Obrigado pelo esclarecimento.
Smile4ever 12/10

Respostas:


77

Ignacio Vazquez-Abrams já explicou sobre* :

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.

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

Dado o nome do diretório e o tamanho do arquivo, emulatorprovavelmente é um binário Linux x86. Eu suspeito que você tem 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 ia32-libspacote (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.


1
Interessante, vou dar o que você sugeriu. A única coisa que me confunde é que eu estava com isso funcionando ontem e desde então só reiniciei ...: S
user155695

-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory
Dennis Williamson

80

Isso significa que o arquivo é executável. Um classificador é mostrado quando -Fé passado para lsa linha de comando ou não.


33

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.

3
+1 para ensinar a pescar e também dar o peixe.
precisa saber é o seguinte

21

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 a Fbandeira sob o capô (por padrão), portanto, basta entrar lsproduzindo o efeito que você está vendo lá.

Edit: a propósito, você está afirmando que está correndo ls -l, correr llpode não ser o mesmo.


7
Um truque divertido que você pode fazer no Bash é digitar o comando alias'd (por exemplo, "ll") e pressionar [Ctrl] + [Alt] + [e]. Ele expandirá o alias para que você possa ver o que está realmente processando. (você pode ter que pressioná-lo algumas vezes para expandir totalmente)
Adam

9

Como vários outros mencionaram, a -Fopção de lssinalizar executáveis ​​com o asterisco. Você não tem um -Fna sua linha de comando, mas é provável que lstenha sido um alias. Você pode procurar aliases no shell de sua escolha (no bash, use o comando aliasinterno para listar os aliases) ou escapar do lscomando com uma barra invertida para desativar o alias.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.