Vou apenas adicionar uma nota aqui para aqueles que chegam a este Q & A por outro motivo.
Se você vir um * no final de um nome de arquivo na saída de ls (na verdade de ls -F , mas ls é às vezes com alias para ls -F (ou ls-F incorporado em tcsh ), ou de zsh ou tcsh completions, isso é algo completamente diferente.
Com a opção -F , ls adiciona um caractere à direita no final de algum nome de arquivo especial para ajudar a identificar seu especialidade . zsh e tcsh fazem o mesmo ao listar as conclusões do nome do arquivo.
Se você ver:
$ ls -F
dir/ fifo| file link@ ls* socket=
Os / , | , * e = não fazem parte do nome do arquivo (embora possam ser, se alguém tentou enganá-lo), mas são anexados por ls para informar que :
-
dir é um diretório ( / )
-
fifo é um pipe nomeado / fifo ( | )
-
link é um link simbólico ( @ )
-
ls é um arquivo regular executável ( * ) (tem pelo menos um bit de execução em suas permissões)
-
socket é um soquete de domínio Unix ( = )
Algumas ls implementações (e zsh de conclusão) também podem fazer essa diferenciação por cores para terminais que as suportam com diferentes opções.