Se você não notar o efeito de -p , deverá verificar a que ls está com um alias.
Como outros já disseram, ls -p faz com que os nomes dos diretórios sejam mostrados com um / à direita. No entanto, às vezes, as pessoas perguntam sobre quais bandeiras, como -p e -F , podem parecer não ter efeito.
Normalmente, o efeito é claramente aparente:
ek@Io:~/tmp$ ls
directory regular-file
ek@Io:~/tmp$ ls -p
directory/ regular-file
No entanto, é comum que os usuários tenham um alias de shell ls que adiciona opções. Se uma dessas opções for -p ou outra opção que adicione a barra final aos nomes de diretório , adicionar -p não fará diferença alguma.
No Ubuntu, type ls geralmente mostra ls is aliased to 'ls --color=auto' . (Esse alias é fornecido por alias ls='ls --color=auto' no arquivo .bashrc do usuário, que é copiado de /etc/skel quando a conta do usuário é criada.) Quando um usuário executa ls em um prompt do shell interativo, ele é substituído por ls --color=auto .
Se -p parecer não ter efeito quando você passá-lo para ls , tente executar type ls ou alias ls . (Como é possível, embora raro, ter uma função de shell para ls , type é mais confiável do que alias para descobrir o que está acontecendo aqui.) Isso pode revelar que você tem um ls alias que inclui -p , --indicator-style=slash , -F ou --classify .
Existem algumas maneiras de ignorar expansão de alias:
command ls
\ls
/bin/ls
Esse terceiro comando é equivalente apenas se o executável ls for /bin/ls . Isso é quase sempre o caso; só seria diferente se um segundo executável ls fosse adicionado em outro lugar. Execute type -a ls para ver.