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.