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.