Frage

Sie können eine ls Auflistung nach Namen sortieren?

War es hilfreich?

Lösung

Meine ls sortiert nach Namen standardmäßig. Was sehen Sie?

man ls heißt es:

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

Andere Tipps

Für etwas einfach, können Sie kombinieren ls mit Art . Für nur eine Liste von Dateinamen:
ls -1 | sort

sie in umgekehrter Reihenfolge zu sortieren:
ls -1 | sort -r

ls von coreutils führt einen locale-aware sortiert nach Standard und damit überraschende Ergebnisse in einigen Fällen produzieren kann (zum Beispiel wird %foo zwischen bar und quux in LANG=en_US sortieren). Wenn Sie eine ASCIIbetical sortieren möchten, verwenden Sie

LANG=C ls

Die Schönheit von * nix-Tools ist, dass Sie sie kombinieren können:

ls -l | sort -k9,9

Die Ausgabe von ls -l wird wie folgt aussehen

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

So mit 9,9 Sie Sortierspalte 9 bis zur Spalte 9, die Dateinamen sein. Sie müssen zur Verfügung stellen, wo zu stoppen, die die gleiche Spalte in diesem Fall ist. Die Spalten beginnen mit 1.

Auch wenn Sie Groß- / Kleinschreibung zu ignorieren, fügen --ignore-case zu dem Befehl sort.

HINWEIS: "a" kommt nach "Z":

$ touch A.txt aa.txt Z.txt

$ ls

A.txt Z.txt aa.txt

Dateien unterschiedlich sind nur durch eine numerische Zeichenfolge kann unter der Bedingung auf dieser Nummer sortiert werden, dass es durch einen Separator vorgeschaltet ist.

In diesem Fall kann die folgende Syntax verwendet werden:

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

Beispiel:

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

Aus der Manpage (für bash ls):

  

Einträge sortieren alphabetisch, wenn keine -cftuSUX noch --sort.

Überprüfen Sie Ihre .bashrc Datei für Aliasnamen.

Das ls Dienstprogramm IEEE Std entsprechen sollten 1003,1-2001 ( POSIX.1 ), die besagt:

  

22027:. Es soll sortieren Verzeichnis und nicht-Verzeichnis Operanden getrennt nach der Sortierfolge in der aktuellen locale

     

26027: Standardmäßig ist das Format ist nicht spezifiziert, aber der Ausgang ist alphabetisch sortiert werden durch Symbolnamen:

     
      
  • Bibliothek oder Objektnamen, wenn -A angegeben
  •   
  • Symbolname
  •   
  • Symboltyp
  •   
  • Wert des Symbols
  •   
  • Die Größe mit dem Symbol zugeordnet ist, ggf.
  •   

ls -X zu diesem Zweck arbeitet, falls Sie aliased ls in eine nützlichere Standard.

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 --
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top