Pergunta

Você pode classificar um ls lista pelo nome?

Foi útil?

Solução

As minhas ls classifica por nome por padrão. O que você está vendo?

estados man ls:

List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.:

Outras dicas

Para algo simples, você pode combinar ls com tipo . Por apenas uma lista de nomes de arquivo:
ls -1 | sort

Para classificá-los em ordem inversa:
ls -1 | tipo -r

ls de executa coreutils um locale-aware tipo por padrão e, portanto, pode produzir resultados surpreendentes em alguns casos (por exemplo, %foo vai tipo entre bar e quux em LANG=en_US). Se você quiser um tipo ASCIIbetical, uso

LANG=C ls

A beleza de ferramentas * nix é que você pode combiná-los:

ls -l | sort -k9,9

A saída do ls -l será parecido com este

-rw-rw-r-- 1 luckydonald luckydonald  532 Feb 21  2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt

Assim, com 9,9 você classificar coluna 9 até o 9 coluna, sendo os nomes de arquivo. Você tem que fornecer onde parar, que é a mesma coluna neste caso. As colunas começam com 1.

Além disso, se você deseja ignorar maiúsculas / minúsculas, adicionar --ignore-case para o comando sort.

AVISO: "a" vem depois de "Z":

$ toque A.txt aa.txt Z.txt

$ ls

A.txt Z.txt aa.txt

Arquivos sendo diferente apenas por uma string numérica pode ser classificada neste número com a condição de que ele é precedido por um separador.

Neste caso, a seguinte sintaxe pode ser usado:

ls -x1 file | sort -t'<char>' -n -k2

Exemplo:

ls -1 TRA*log | sort -t'_' -n -k2

TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log

A partir da página man (para ls bash):

classificar entradas em ordem alfabética se nenhum dos -cftuSUX nem --sort.

Verifique se o seu arquivo .bashrc para aliases.

O utilitário ls deve estar de acordo com IEEE Std 1.003,1-2.001 ( POSIX.1 ) que afirma:

22027:. Deve classificar diretório e não-diretório operando separadamente de acordo com a sequência de combinação na localidade corrente

26027: Por padrão, o formato não é especificado, mas a saída será ordenada alfabeticamente por nome de símbolo:

  • Biblioteca ou objeto nome, se -A for especificado
  • Nome do símbolo
  • tipo de símbolo
  • Valor do símbolo
  • O tamanho associado com o símbolo, se aplicável

ls -X obras para o efeito, no caso de você ter alias ls a um padrão mais útil.

In Debian Jessie, this works nice:

ls -lah --group-directories-first

# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha

# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top