kls - ls-Ersatz
===============

Aufruf
------

kls [-o <Ausgabedatei>] <Optionen> [<Datei(en)>]

  listet die ausgewählten Dateien entsprechend den angegebenen Optionen.
  Die angegebenen Optionen überschreiben die permanenten Optionen.
  Wurde die Option -o gewählt, erfolgt die Ausgabe in die entsprechende
  Datei.

kls -c <Optionen>
  
  vermerkt die angegebenen Optionen als permanente Optionen.

kls -u

  löscht alle permanenten Optionen.

kls -C

  zeigt alle permanenten Optionen an.

Optionen:
---------

-p <info>        --print=<info>
                 Fuer jede Datei werden die folgenden Informationen ausgegeben:
                 n ... Dateiname
                 s ... Dateigroesse in Bytes
                 t ... Datei-Typ
                 p ... Zugriffsrechte
                 x ... Message Digest
                 l ... Link-Anzahl
                 c ... Zeitpunkt der Erzeugung
                 m ... Zeitpunkt der letzten Modifikation
                 a ... Zeitpunkt des letzten Zugriffes
                 u ... User-ID
                 g ... Gruppen-ID
                 d ... Device Number
                 r ... Relative Device Number
                 i ... Inode Number
-m <mdtype>      --message-digest=<mdtype>
                 Auswahl eines Message Digest:
   MD5           RSA Data Security, Inc. MD5 Message-Digest (16 Bytes)
   SHA-1         SHA-1	 (20 Bytes, Standard)
   SHA-224	 SHA-224 (28 Bytes)
   SHA-256	 SHA-256 (32 Bytes)
   SHA-384	 SHA-384 (48 Bytes)
   SHA-512	 SHA-512 (64 Bytes)
   RIPEMD-160	 RIPEMD-160 (20 Bytes)
-e <encoding>	 --encoding=<encoding>
		 Auswahl eines Encodings für den Message Digest:
   HEX		 hexadezimal (Standard)
   ASCII-85	 ASCII-85-Encoding
   R-ASCII-85	 reverses ASCII-85-Encoding
-r               --recursive
                 rekursive Ausgabe
-t <filetypes>   --type=<filetypes>
                 Informationen werden nur fuer bestimmte Dateitypen ausgegeben:
                 f ... Regulaere Dateien
                 d ... Verzeichnisse
                 p ... Pipes
                 c ... Character Special Devices
                 b ... Block Special Devices
                 s ... Sockets
                 o ... Alle anderen Dateien
-l <symlinks>    --links=<symlinks>
                 geht symbolischen Links nur bis zu einer bestimmten Tiefe nach.
-d <wie>         --directory=<wie>
                 legt fest, wie Directory-Namen behandelt werden, die in
		 den Kommandozeilenargumenten gefunden wurde. Enthaelt der
		 Text ein "d" erfolgen Ausgaben ueber das Directory selbst,
		 enthaelt er ein "c" wird der Inhalt des Verzeichnisses
		 untersucht. "d" und "c" koennen kombiniert werden.
-f               --stay-on-filesystem
                 das Filesystem, auf dem begonnen wurde, wird nicht verlaassen.
-s               --summary
                 gibt am Programmende eine Zusammenfassung aus.

kls ist ein Datei-Lister, der Features von ls und du-Programmen kombiniert.
Die Ausgabe ist konfigurierbar, insbesondere kann die Reihenfolge der
Ausgabespalten festgelegt werden.

Das Programm nutzt die dkapp-Bibliothek und verwendet die dort ueblichen
Preferences, um permanente Optionen zu speichern.

Folgende kls-spezifische Preferences koennen genutzt werden:

/directory  legt fest, wie verfahren wird, wenn als Kommandozeilen-Argumente
	    Verzeichnis-Namen auftauchen.
	    Enthaelt der String ein "d", werden Informationen ueber das
	    Verzeichnis selbst ausgegeben. Enthaelt der String ein "d",
	    werden Informationen ueber die enthaltenen Dateien und
	    Unterverzeichnisse ausgegeben. "c" und "d" sind kombinierbar.

/recursive  ist ein Flag, das festlegt, ob Unterverzeichnisse mit
	    beruecksichtigt werden sollen.

/links      ist ein unsigned long Wert und gibt an, bis zu welcher
	    Tiefe das Programm symbolischen Links folgen soll.
	    Einige System koennen Symlink-Schleifen enthalten, diese
	    versetzen das Programm in eine Endlos-Schleife.
	    Soll symbolischen Links ohne Begrenzung nachgegangen werden,
	    muss der String "unlimited" eingetragen werden.

/print      gibt die Spalten-Reihenfolge in der Ausgabe an. Siehe
	    die "-p" - Option.

/summary    ist ein Flag, das festlegt, ob eine Zusammenfassung ausgegeben
	    werden soll, wenn das Programm beendet wird.

/type       ist ein String, der Kennbuchstaben fuer alle Dateitypen
	    enthaelt, fuer die eine Ausgabe erfolgen soll.
	    Siehe "-t" fuer Details.

Um das Setzen permanenter Preferences zu vereinfachen, existiert
die Option "-c".
Mit z.B.

  kls -c -ptsn -ddc -s

erfolgt keine Ausgabe, vielmehr wird festgelegt, dass bei spaeteren
Programmlaeufen standardmaessig Dateityp, Groesse und Name ausgegeben
werden. Wird
  kls <directory>
aufgerufen, werden Informationen sowohl ueber das Verzeichnis ausgegeben
als auch ueber die darin enthaltenen Eintraege.
Am Programmende wird eine Zusammenfassung ausgegeben.

Nun kann das Programm mit

  kls <datei(en)>

aufgerufen werden, ohne Optionen anzugeben und die o.a. Optionen
sind in Kraft.

Mit der Option "-u" koennen die permanenten Preferences entfernt werden, z.B.:

  kls -u


