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


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, da seguinte maneira:

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

EDITAR : Estou tentando usar o Eclipse emulator, mas continua reclamando os arquivos não existe, mas é aqui?


126


origem


Todos os arquivos são marcados como executáveis ​​em partições NTFS. - Smile4ever
@ Smile4ever isso 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 a FAT e outras partições não-Unix. No entanto, você também pode armazenar permissões Unix em 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, ele é montado como executável na maioria das distribuições do Linux. Obrigado pelo esclarecimento. - Smile4ever


Respostas:


Ignacio Vazquez-Abrams já explicou sobre o *:

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

Quanto ao executável-olhando emulator que você não pode realmente executar, isso pode acontecer quando o carregador dinâmico solicitado pelo emulator não existe. Você pode verificar que tipo de arquivo emulator está com o comando file emulatore verifique o carregador dinâmico e as bibliotecas necessárias 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 ia32-libs pacote (e talvez também ia32-libs-gtk).

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


52



Interessante, vou dar o que você sugeriu um tiro. A única coisa que me confunde é que eu tive essa corrida ontem, e desde então só reiniciei ...: S - user155695
-bash: ./badshebang: /bin/xyzzy: bad interpreter: No such file or directory - Dennis Williamson


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


77





A partir 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.

29



+1 para o ensino de pesca, bem como dar o peixe. - atoMerz


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 bandeira sob o capô (por padrão), então apenas entrando ls irá produzir o efeito que você está vendo lá.

Edit: a propósito, você está dizendo que você está correndo ls -l, corrida ll pode não ser o mesmo.


20



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


Como vários outros mencionaram, o -F opção para ls irá sinalizar executáveis ​​com o asterisco. Você não tem um -F na sua linha de comando, mas é provável que ls foi aliased. Você pode verificar aliases no seu shell de escolha (no bash, use o comando interno alias para listar os aliases), ou escapar do ls comando com uma barra invertida para desabilitar o aliasing.


9