Domanda

Si può ordinare un ls elenco per nome?

È stato utile?

Soluzione

I miei ls sorta al nome di default. Cosa vedi?

stati man ls:

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

Altri suggerimenti

Per qualcosa di semplice, è possibile combinare ls con sort . Per un elenco di nomi di file:
ls -1 | sort

Per ordinarli in ordine inverso:
ls -1 | sorta -r

ls da coreutils esegue un locale-consapevole mostra per impostazione predefinita, e quindi possono produrre risultati sorprendenti in alcuni casi (ad esempio, %foo ordinerà tra bar e quux in LANG=en_US). Se si desidera un ASCIIbetico sorta, utilizzare

LANG=C ls

La bellezza di *nix strumenti che si possono combinare:

ls -l | sort -k9,9

L'output di ls -l sarà simile a questa

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

Quindi, con 9,9 si ordina colonna 9 fino alla colonna 9, essendo i nomi dei file.È necessario fornire dove fermarsi, che è la stessa colonna, in questo caso.Le colonne di iniziare con 1.

Inoltre, se si desidera ignorare maiuscole/minuscole, aggiungere --ignore-case per il tipo di comando.

AVVISO: "a" viene dopo "Z":

$ touch A.txt aa.txt Z.txt

$ ls

A.txt Z.txt aa.txt

File differenziandosi unicamente da una stringa numerica può essere ordinato su questo numero a condizione che è preceduto da un separatore.

In questo caso, la seguente sintassi può essere utilizzato:

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

Esempio:

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

Dalla pagina man (per bash ls):

  

voci Ordine alfabetico se nessuno dei -cftuSUX né --sort.

Controlla il file .bashrc per gli alias.

L'utilità ls deve essere conforme allo standard IEEE Std 1003.1-2001 ( POSIX.1 ) in cui si afferma:

  

22027:. Deve ordinare directory e non directory operandi separatamente in base alla sequenza di collazione nella localizzazione corrente

     

26027: per impostazione predefinita, il formato non è specificato, ma l'uscita sono in ordine alfabetico al nome simbolo:

     
      
  • Biblioteca o il nome dell'oggetto, se -A è specificato
  •   
  • Nome Simbolo
  •   
  • tipo Simbolo
  •   
  • valore del simbolo
  •   
  • Il formato associato al simbolo, se applicabile
  •   

ls -X funziona a tal fine, nel caso in cui si hanno ls alias ad un più utile di default.

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 --
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top