Como o ls lista os diretórios com uma barra à direita?

12

Minha concha é bash. Como posso obter a saída lspara mostrar diretórios com uma barra à direita? Quando eu faço lsem tcshque dá a saída desejada. Como faço para que isso ocorra bashsem usar argumentos?

por exemplo.

bin/
lib/
src/
file1.txt
file2.txt
CJ7
fonte
7
Seu shell não é relevante aqui ... man lsentão role para baixo até-p
don_crissti
é a -Fbandeira? Eu nunca o uso, por isso não me lembro ...
Jeff Schaller
1
Com uma barra invertida à direita conforme o seu título ou com uma barra à direita (o que faz mais sentido) conforme o seu exemplo?
Gilles 'SO- stop be evil'
@don_crissti Veja minha edição da pergunta.
CJ7
@ CJ7 - o que é type lssaída? Talvez um apelido?
23416 don_crissti

Respostas:

12

A solução mais simples (como fornecida por @don_crissti nos comentários) é:

ls -p

Você pode obter um efeito semelhante com:

ls -F

Mas isso também adicionará alguns outros indicadores:

Anexe um caractere a cada nome de arquivo indicando o tipo de arquivo. Além disso, para arquivos regulares executáveis, acrescente *. Os indicadores de tipo de arquivo são /para diretórios, @links simbólicos, |FIFOs, =soquetes, >portas e nada para arquivos regulares.


Claro, você pode fazer a seqüência de lsexecução ls -pna linha de comando com um alias:

alias ls='ls -p'

Isso é temporal e pode ser apagado unalias ls.
Provavelmente, você tcshpossui um alias ativo.

O que você pode fazer colocando o comando em ~/.bashrcou ~/.bash_aliases.


fonte
Essa última parte chamou minha atenção. Eu nunca vi ou ouvi falar de um ~/.bash_aliasesantes; somente ~/.bash_profilee / ou ~.bashrc. Está correto?
vozes
1
@ tjt263 É uma prática comum colocar todos os aliases em um arquivo especial proveniente do bashrc . O conteúdo pode variar de acordo com as suas necessidades .
Para manter as cores:alias ls='ls --color=auto -p'
mkczyk 15/03/19
2

Você pode usar -F, por exemplo

$ /bin/ls -F
-/                                 diesel_folks                 grub                     presidents             user_mailer/
0/                                 dmStaffing/                  HJJJH/                   prime_scenarios   
...
# I'm using /bin/ls to make sure I run my system ls 
# (I actually have it aliased to add options automatically normally)
#
# Just read about your no argument requirement
# So you too could alias it, i.e.

alias ls='ls -F'

# Put it in your `.bashrc` or `.bash_aliases` file
Michael Durrant
fonte
Você sabe por que tcshestá me dando a saída desejada e bashnão está?
CJ7
1
@ CJ7 Porque o tcsh e o bash usam diferentes arquivos de configuração (com sintaxe diferente). Você provavelmente já possui um apelido semelhante no seu .cshrc.
Gilles 'SO- stop be evil'
Eu tentei fazer um .bashrcarquivo no meu diretório home, mas não funcionou
CJ7
@ CJ7, você reiniciou seu shell depois de fazer essa alteração?
Jochem Schulenklopper 26/09
0

Ou

   ls --classify

Ou:

   ls --indicator-style=slash

Explicação

   -F, --classify
          append indicator (one of */=>@|) to entries

   -p, --indicator-style=slash
          append / indicator to directories

As outras respostas cobrem mais ou menos isso, mas eu prefiro opções longas no estilo GNU do que opções curtas no estilo BSD nas respostas Stack Overflow, pois são mais auto-explicativas e aprendidas / "memorizáveis" / "internalizáveis".

Sridhar Sarnobat
fonte