- BEZEICHNUNG
- ÜBERSICHT
- BESCHREIBUNG
  - Übersicht
  - Grundlegende Verwendung
  - Platzhalter
  - Weitere Anwendungsfälle
  - UNC-Pfade unter Windows
  - Größenänderung der Konsole unter Windows
  - Schnittstellen
- OPTIONEN
- INSTALLATION
  - Installation für POSIX-Shells
  - Installation für C-ähnliche Shells (csh, tcsh)
  - Version für den Windows-Befehlszeileninterpreter
  - Windows VISTA und neuer
  - Version für die Windows PowerShell
  - Version für den Befehlszeileninterpreter von OS/2
- LOKALISIERUNG
  - WINDOWS CODE PAGES
  - UNICODE
    - UTF-8 unter Unix/Linux
    - UTF-16 unter Windows
    - UTF-8 unter Cygwin
- DATEIEN
- UMGEBUNGSVARIABLEN
- SIEHE AUCH
- AUTOREN

# BEZEICHNUNG

wcd - Wherever Change Directory

chdir für DOS und Unix

# ÜBERSICHT

    wcd [Optionen] [Verzeichnis]

# BESCHREIBUNG

## Übersicht

Wcd ist ein Befehlszeilenprogramm zum schnellen Verzeichniswechsel. Es spart Zeit bei Tastatureingaben. Sie brauchen nur den Teil eines Verzeichnisnamens einzugeben, und wcd wechselt dorthin. Im Falle mehrerer Treffer verfügt wcd über eine Methode zur Schnellauswahl und ermöglicht die Definition von Aliasen und das Verbannen von Verzeichnissen. Außerdem beinhaltet wcd einen interaktiven Verzeichnisbaumbrowser im Vollbildmodus mit schneller Suche.

Wcd wurde nach dem Vorbild des Norton Change Directory (NCD) entworfen. NCD erschien zuerst 1987 in The Norton Utilities, Release 4 für DOS, veröffentlicht von Peter Norton.

Wcd wurde auf verschiedene Befehlszeileninterpreter portiert: DOS (command.com), Windows (cmd.exe und PowerShell), OS/2 (cmd.exe) sowie Unix-Shells wie Bourne- (sh), Bourne-Again- (bash), Korn- (ksh), Z- (zsh) und die C- (csh) Shell und weitere auf verschiedenen Betriebssystemen ausführbare Shells.

Wcd unterstützt 8-Bit-Zeichensätze auf allen Systemen und verfügt über optionale Unterstützung für Unicode. Weitere Informationen hierzu finden Sie im Abschnitt LOKALISIERUNG.

Im Abschnitt INSTALLATION finden Sie Anweisungen, wie Sie wcd an Ihre persönlichen Wünsche anpassen können.

## Grundlegende Verwendung

Per Vorgabe (wenn keine Platzhalter verwendet werden) sucht wcd nach einem Verzeichnis, dessen Name mit dem eingegebenen Namen beginnt.

Beispielsweise wechselt dieser Befehl in das Verzeichnis `/home/user/Desktop` des aktuellen Benutzers:

    wcd Desk

Bei mehreren möglichen Übereinstimungen zeigt wcd eine Liste aller Möglichkeiten an. Der Benutzer kann dann mit einigen Tastenkürzeln seine Auswahl treffen (meist nur mit einem).

## Platzhalter

Wcd unterstützt die folgenden Platzhalter:

    *         findet jede Zeichensequenz (kein oder mehr Zeichen)
    ?         findet jedes einzelne Zeichen
    [GRUPPE]  findet jedes Zeichen in der angegebenen Gruppe,
    [!GRUPPE] oder [^GRUPPE] findet jedes Zeichen, das in der angegebenen
              GRUPPE nicht enthalten ist.

Eine Gruppe wird als Zeichen oder Bereich angegeben. Ein Bereich folgt der Form Zeichen minus Zeichen, zum Beispiel `0-9` oder `A-Z`. Dabei ist `[0-9a-zA-Z_]` die minimal mögliche Gruppe nach dem Muster `[..]`. Internationale Zeichen (zum Beispiel 8-Bit-Zeichen) sind erlaubt, falls das System diese unterstützt. Um die besondere syntaktische Bedeutung der Zeichen `[]*?!^-\` innerhalb oder außerhalb des Musters `[..]` zu berücksichtigen, so dass das exakte Zeichen gefunden wird, stellen Sie dem Zeichen einen Rückschrägstrich (`\`) voran, um es zu maskieren.

Die Verwendung von Platzhaltern ermöglicht eine leistungsfähige Suche. Beispielsweise findet folgende Anfrage alle Verzeichnisse, deren Name auf »top« endet:

    wcd *top

Nach Verzeichnissen suchen, deren Name an einer beliebigen Stelle »top« enthält:

    wcd *top*

Nach Verzeichnissen suchen, deren Name mit »a«, »b«, oder »c« beginnt:

    wcd [a-c]*

Es ist auch möglich, einen Teil eines Verzeichnispfades anzugeben. Hier sucht Wcd nach Verzeichnissen, die mit »Desk« beginnen und der Pfad auf *me/Desk* passt.

    wcd me/Desk

Es ist möglich, jede Art von Ausdruck mit Schrägstrichen und Platzhaltern einzugeben, zum Beispiel:

    wcd src*/*1?/a*2

## Weitere Anwendungsfälle

Falls keine Platzhalter verwendet werden und wcd eine perfekte Übereinstimmung findet, werden alle »unscharfen« Übereinstimmungen per Vorgabe ignoriert. Dieses Verhalten kann mit der Option -w geändert werden.

Der interaktive Verzeichnisbaumbrowser kann mit der Option -g gestartet werden.

    wcd -g

Wcd generiert eine Baumdatei, in der nach dem Verzeichnis gesucht wird. Auf Unix- und Windows-Systemen fügt wcd beim Einlesen des Laufwerksinhalts symbolische Links zur Baumdatei hinzu, folgt diesen aber nicht. Dies wird deshalb unterdrückt, weil das Einlesen in einer Endlosschleife enden könnte oder größere Teile eines Netzwerks eingelesen werden müssten.

Wcd kann auch in Verzeichnisse wechseln, die nicht in der Baumdatei enthalten sind, zum Beispiel:

    wcd ..

Falls wcd einen Treffer findet, aber nicht in das Verzeichnis wechseln kann, versucht es, dieses Verzeichnis aus der Baumdatei zu entfernen, jedoch nicht aus der zusätzlichen Baumdatei. Siehe auch die Option -k.

Wcd erstellt einen Verzeichnisstapel, der auf dem Laufwerk gespeichert wird. Der Stapel hat die vorgegebene Größe 10 und ist zyklisch. Siehe die Optionen -z, -, + und =.

In Umgebungen mit mehreren Benutzern kann mit der Option -u in die Verzeichnisse anderer Benutzer gewechselt werden.

Auf DOS- und Windows-Systemen ist es nicht von Bedeutung, ob Sie einen Schrägstrich »/« oder einen Rückschrägstrich »\« als Verzeichnistrenner verwenden.

Auf DOS- und Windows-Systemen ist es möglich, gleichzeitig das Laufwerk und das Verzeichnis zu wechseln, indem Sie dem Verzeichnisnamen den Laufwerksnamen voranstellen.

    wcd d:games

## UNC-Pfade unter Windows

Die Windows-Versionen (Befehlszeileninterpreter, PowerShell, MSYS, zsh, cygwin) unterstützen SMB-LAN-UNC-Pfade ohne Laufwerksbuchstaben wie `\\Servername\Freigabename`. Wcd für den Windows-Befehlszeileninterpreter benutzt den »pushd«-Befehl, um einem UNC-Pfad automatisch einen Laufwerksbuchstaben zuzuordnen. In der Windows PowerShell, MSYS, zsh und Cygwin werden UNC-Pfade vollständig unterstützt. Das aktuelle Arbeitsverzeichnis kann ein UNC-Pfad sein.

## Größenänderung der Konsole unter Windows

Wcd unterstützt seit Version 6.0.3 die Größenänderung der Konsole unter Windows 10 und ConEmu (siehe https://conemu.github.io/). Die Windows-10-Konsole darf nicht im Legacy-Modus sein (prüfen sie das in den Einstellungen der Konsole). Der Bildschirm darf nicht aktualisiert werden, wenn »Wrap text output on resize« deaktiviert ist. Der Bildschirm kann manuell durch Drücken von F5 aktualisiert werden.

## Schnittstellen

Wcd verfügt über drei verschiedene Schnittstellen, um aus einer Übereinstimmungsliste zu wählen. Die Schnittstelle wird bei der Kompilierung ausgewählt.

Die erste Schnittstelle verwendet die Standardeingabe und -ausgabe (stdin/stdout). Eine nummerierte Liste wird im Terminal ausgegeben. Sie können aus dieser Liste wählen, indem Sie eine Zahl eingeben und die <Eingabetaste> drücken. Diese Liste kann nicht zurückgerollt werden, wenn sie für die Bildschirmausgabe zu lang ist. Dafür muss die Zurückrollfunktion des Terminals oder der Konsole verwendet werden. Diese Schnittstelle ist sehr klein und portabel.

Die zweite Schnittstelle setzt auf der Conio-Bibliothek auf. Hier ist eine Zurückrollfunktion bereits eingebaut. Wiederum wird eine Liste angezeigt, die aber hier Buchstaben als Aufzählungszeichen verwendet. Zur Auswahl eines Listeneintrags drücken Sie einfach die entsprechende Buchstabentaste. Wenn möglich, wird der Bildschirminhalt nach dem Beenden wiederhergestellt. Wenn Sie Zahlen anstatt Buchstaben bevorzugen, können Sie die Option -N verwenden.

Die dritte Schnittstelle verwendet die Curses-Bibliothek und ist ähnlich der Conio-Schnittstelle. Die Curses-Schnittstelle von wcd hat zusätzlich auch eine »grafische« Oberfläche. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1). Diese Schnittstelle kann mit der Option -g aktiviert werden.

Mit der Option -o ist es jederzeit möglich, auf die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe) auszuweichen.

# OPTIONEN

-a

  fügt den aktuellen Pfad zur vorgegebenen Baumdatei hinzu.

  Verwenden Sie diese Option, um schnell den aktuellen Pfad zur Baumdatei hinzuzufügen. Das erneute Einlesen des kompletten Laufwerks kann in manchen Fällen recht lange dauern.

-aa

  fügt den aktuellen und alle übergeordneten Pfade zur vorgegebenen Baumdatei hinzu.

-A PFAD

  liest den Verzeichnisbaum aus PFAD und fügt ihn zur vorgegebenen Baumdatei hinzu. Beispiele:

      wcd -A .
      wcd -A /home -A /etc
      wcd -A d: -A e: -A \\server\share

  Unter Windows können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen, indem Sie etwa Folgendes eingeben: `wcd -A \\Servername`.

  Siehe auch die Optionen -S, -s und -E.

-b

  verbannt den aktuellen Pfad.

  Wcd speichert den aktuellen Pfad in der Bann-Datei. Das bedeutet, dass zukünftig alle Übereinstimmungen ignoriert werden, die sich auf dieses Verzeichnis und dessen Unterverzeichnisse beziehen.

  Die Bann-Datei kann mit einem Texteditor bearbeitet werden. Die Verwendung von Platzhaltern ist möglich, außerdem werden Namensübereinstimmungen auf den absoluten Pfad bezogen.

  Verbannte Pfade werden beim Einlesen des Laufwerks nicht ausgeschlossen. Um dies zu tun, verwenden Sie die Option -xf.

-c, --direct-cd

  Direkter CD-Modus. Per Vorgabe arbeitet wcd wie folgt:

      1. Es wird versucht, einen Treffer in der oder den Baumdatei(en)
         zu finden.
      2. Wird nichts gefunden, wird versucht, das eingegebene
         Verzeichnis zu öffnen.

  Im direkten CD-Modus arbeitet wcd in umgekehrter Reihenfolge.

      1. Es wird versucht, das eingegebene Verzeichnis zu öffnen.
      2. Wird nichts gefunden, wird nach einem Treffer in der oder
         den Baumdatei(en) gesucht.

-d LAUFWERK

  legt das Laufwerk für den Verzeichnisstapel und die Go-Datei fest (nur DOS).

  Die Stapeldatei und das Go-Skript werden per Vorgabe im Laufwerk »C:« gespeichert, wenn die Umgebungsvariable HOME nicht gesetzt ist. Verwenden Sie diese Option, wenn »C:« ein schreibgeschütztes Laufwerk ist. Diese Option muss vor den Stapeloptionen -, + und = stehen.

-e

  fügt den aktuellen Pfad zur zusätzlichen Baumdatei hinzu.

  Verwenden Sie diese Option, um schnell den aktuellen Pfad zur zusätzlichen Baumdatei hinzuzufügen.

-ee

  fügt den aktuellen Pfad und alle übergeordneten Pfade zur zusätzlichen Baumdatei hinzu.

-E PFAD

  liest den Verzeichnisbaum aus PFAD und fügt ihn zur zusätzlichen Baumdatei hinzu. Siehe auch die Optionen -A und -S.

-f DATEI

  liest die Baumdatei DATEI. Die vorgegebene Baumdatei wird nicht gelesen.

+f DATEI

  liest die Baumdatei DATEI zusätzlich zur vorgegebenen Baumdatei.

-g

  verwendet die grafische Benutzeroberfläche (nur in Versionen mit curses-Schnittstelle).

  Wcd startet eine textbasierte, auf der Curses-Bibliothek aufsetzende »grafische« Schnittstelle. Sie können ein Verzeichnis in einem interaktiven Verzeichnisbaumbrowser im Vollbildmodus auswählen. Die Navigation und Suchmethoden sind ähnlich wie in vim(1).

  Wenn keine Suchzeichenkette angegeben ist, stellt wcd den gesamten Baum aus den Inhalten der vorgegebenen und der zusätzlichen Baumdatei dar.

  Wenn eine Suchzeichenkette angegeben ist, wird die Trefferliste als Verzeichnisbaum angezeigt.

  Die vorgegebene Ansicht des Baums ähnelt der Ansicht im originalen NCD unter DOS. Der Unterschied besteht darin, dass in NCD alle Verzeichnisse der gleichen Pfadtiefe im gesamten Baum vertikal angeordnet werden. Das war in NCD möglich, da ein Verzeichnisname in DOS nicht länger als 12 Zeichen (8.3) sein durfte. Auf modernen Betriebssystemen können Verzeichnisnamen sehr lang sein, außerdem sind große Unterschiede bei den Längen der Namen der verschiedenen Verzeichnisse möglich. Deswegen werden Verzeichnisse der gleichen Pfadtiefe in wcd nicht im gesamten Baum vertikal ausgerichtet, sondern nur in Verzweigungen. Daher kann es zu Seitenbewegungen kommen, wenn Sie eigentlich in der Hierarchie direkt nach oben oder von einer Verzweigung zu einer anderen navigieren wollen.

  Das Navigationsverhalten in Wcd ist exakt das gleiche wie im originalen NCD. Wenn Sie beispielsweise die Pfeil-ab-Taste drücken, gehen Sie damit zum nächsten Verzeichnis der gleichen Tiefe in der Verzeichnishierarchie, wobei Verzweigungen übersprungen werden. Dies ermöglicht die schnelle Navigation durch den Baum.

  Siehe die Optionen -Ta, -TC und -Tc zum Ändern des Navigationsverhaltens.

-gd

  gibt die Baumdateien als Baum in die Standardausgabe aus.

-G PFAD

  schreibt das Go-Skript in das Verzeichnis PFAD. Unter Unix beispielsweise schreibt `wcd -G PFAD` ein Go-Skript in PFAD/wcd.go.

-GN, --no-go-script

  verhindert die Erstellung eines Go-Skripts. Diese Option kann zusammen mit -j verwendet werden, wenn Sie wcd kein Go-Skript schreiben lassen wollen.

-h, --help

  zeigt eine Hilfe an und beendet das Programm.

-i, --ignore-case

  ignoriert Groß-/Kleinschreibung. In den DOS- und Windows-Versionen ist dies der Standard. In den Unix- und Cygwin-Versionen wird per Vorgabe die Groß-/Kleinschreibung berücksichtigt.

+i, --no-ignore-case

  berücksichtigt Groß-/Kleinschreibung. Siehe auch Option -i.

-I, --ignore-diacritics

  ignoriert diakritische Zeichen des lateinischen Alphabets. Buchstaben mit diakritischen Zeichen werden wie die deren Basisbuchstaben behandelt. Die folgenden Latin-Zeichenkodierungen werden unterstützt: CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, sowie Unicode Latin-1, Latin Extended-A, und Latin Extended-B. Siehe auch https://de.wikipedia.org/wiki/Diakritisches_Zeichen

+I, --no-ignore-diacritics

  berücksichtigt diakritische Zeichen (Vorgabe). Siehe auch Option -I.

-j, --just-go

  Geh-einfach-Modus.

  In diesem Modus zeigt wcd keine Liste an, wenn mehr als ein Verzeichnis auf das angegebene Verzeichnis passt. Wcd wechselt nur einfach zum ersten Treffer. Beim erneuten Aufruf von wcd mit den gleichen Argumenten wird zum Verzeichnis im nächsten Treffer gewechselt, und so weiter.

  Wcd gibt das Verzeichnis, in das gewechselt wird, in die Standardausgabe aus. So kann eine andere Installationsmethode verwendet werden. Sie könnten die folgende Funktion für eine POSIX-kompatible Shell erstellen:

      wcd ()
      {
          cd "$($HOME/bin/wcd.exe -j $@)"
      }

  Wenn Sie mit einer älteren Shell arbeiten, die nicht über Unterstützung für die Befehlsersetzung mit »$()« verfügt, müssen Sie die auch die ältere Befehlsersetzung mit Gravis-Zeichen (Backtick, »`«) verwenden.

      wcd ()
      {
          cd "`$HOME/bin/wcd.exe -j $@`"
      }

  Auf Windows-Systemen mit einer NT4-Shell können Sie den folgenden Alias anlegen:

      alias wcd `cd %@execstr[wcdwin32.exe -z 0 -j %1]`

  Diese Methode macht ein Go-Skript überflüssig, daher können Sie die Option -GN zusammen mit -j verwenden.

-k, --keep-paths

  erhält Pfade.

  Die Pfade werden in der Baumdatei weiter vorgehalten, wenn wcd nicht dorthin wechseln kann. Das Vorgabeverhalten in diesem Fall ist, dass wcd versucht, diese Pfade aus der Baumdatei zu entfernen. Mit dieser Option wird das Vorgabeverhalten deaktiviert.

-K, --color

  verwendet Farben im grafischen Modus.

-l ALIAS

  benennt den aktuellen Pfad mit ALIAS. Wcd speichert den aktuellen Pfad mit dem ALIAS in der Alias-Datei. Bei Aliasen wird Groß-/Kleinschreibung berücksichtigt.

-ls

  zeigt den Namen der Alias-Datei an und listet alle Aliase auf.

-m VERZEICHNIS

  erstellt ein Verzeichnis und fügt es zur Baumdatei hinzu.

-L, --license

  zeigt die Lizenz des Programms an.

-M VERZEICHNIS

  erstellt ein Verzeichnis und fügt es zur zusätzlichen Baumdatei hinzu.

-n PFAD

  liest die relative Baumdatei aus PFAD.

  Die Datei für die vorgegebene Baumansicht wird nicht gelesen. Die Datei für die relative Baumansicht sollte schon von wcd mit der Option +S angelegt worden sein. PFAD kann auch direkt auf eine Datei verweisen.

  Ein Beispiel. Nehmen wir an, ein anderes System wurde in `/mnt/network` eingehängt:

      wcd -n /mnt/network src

  Wcd öffnet die Datei der relativen Baumansicht in `/mnt/network/`. Die Datei enthält die Pfade relativ von diesem Punkt aus betrachtet.

+n PFAD

  liest die Datei der relativen Baumansicht zusätzlich zur vorgegebenen Datei. Siehe Option -n.

-N, --numbers

  verwendet Zahlen anstelle von Buchstaben.

  Wcd mit einer Conio- oder Curses-basierten Benutzeroberfläche (siehe Abschnitt »Schnittstellen«) stellt eine Trefferliste mit Buchstaben als Aufzählungszeichen dar. Wenn Sie die Option -N angeben, wird die Trefferliste mit Zahlen nummeriert. Ungeachtet der Option -N können Sie einen Buchstaben oder Zahlen eingeben, um aus der Trefferliste zu wählen.

-o

  verwendet die stdin/stdout-Schnittstelle (Standardeingabe/Standardausgabe).

  Falls aus verschiedenen Gründen die conio- oder curses-Schnittstelle von wcd nicht funktioniert, können Sie mit der Option -o auf die stdin/stdout-Schnittstelle ausweichen.

-od, --to-stdout

  gibt alle Übereinstimmungen in die Standardausgabe aus.

-q, --quiet

  Stiller Modus. Die Ausgabe des endgültigen Treffers wird unterdrückt.

-r VERZEICHNIS

  entfernt ein Verzeichnis und entfernt es auch aus der Baumdatei.

  Wenn das Verzeichnis leer ist, wird wcd es entfernen, und versuchen, es aus der Baumdatei zu entfernen.

-rmtree VERZEICHNIS

  entfernt ein Verzeichnis rekursiv und entfernt es auch aus der Baumdatei.

  Wcd entfernt das Verzeichnis und dessen Untervezeichnisse und Dateien, außerdem werden die Verzeichnisse aus der Baumdatei entfernt.

-s

  liest den Laufwerksinhalt (evtl. erneut) aus dem Verzeichnis `$HOME` ein. Falls HOME nicht definiert ist, wird das Wurzelverzeichnis »/« des Laufwerks eingelesen.

  Die existierende vorgegebene Baumdatei wird dabei überschrieben.

  Das vorgegebene einzulesende Verzeichnis kann mit der Umgebungsvariable `WCDSCAN` außer Kraft gesetzt werden. Weitere Informationen finden Sie im Abschnitt UMGEBUNGSVARIABLEN.

-S PFAD

  liest den Verzeichnisbaum aus PFAD und überschreibt die vorgegebene Baumdatei. Siehe auch die Optionen -A, -s und -E. Zum Beispiel können Sie mit der Option -A eine Vorgabe-Baumdatei Ihrer Wahl erzeugen. Beispiele:

  Unix:

      wcd -S /
      wcd -S /home -A /etc -A /usr

  DOS/Windows:

      wcd -S c:/
      wcd -S c: -A d: -A \\server\share

  Mit den Windows-Versionen können Sie alle freigegebenen Verzeichnisse eines Windows-LAN-Servers einlesen. Geben Sie etwa Folgendes ein: `wcd -S \\Servername`.

-S PFAD

  liest das Laufwerk aus PFAD ein und platziert relative Pfade in der Datei der relativen Baumansicht. Diese Datei wird in wcd von den Optionen -n und +n verwendet. Beispiel `wcd -n PFAD src`.

-t

  entfernt das temporäre Einhängeverzeichnis `/tmp_mnt` nicht (nur Unix).

  Wcd entfernt per Vorgabe `/tmp_mnt/` aus den Treffern. Dieses Verzeichnis wird vom Auto-Mounter verwendet. Sie können dieses Verhalten mit der Option -t abschalten.

-T, --ascii-tree

  zeichnet die Baumansicht mit ASCII-Zeichen. Verwenden Sie diese Option, wenn die Zeichen zum Darstellen von Linien in Ihrem Terminal nicht korrekt angezeigt werden.

-Ta, --alt-tree-nav

  verwendet einen alternativen Weg zur Navigation in der grafischen Baumansicht.

  In der vorgegebenen Baumansicht im NCD-Stil verhindert die Option -Ta das Springen in beziehungslose Verzeichnisse.

  In der kompakten Baumansicht funktioniert die Navigation im alternativen Modus ähnlich wie in Dateimanagern mit grafischer Benutzeroberfläche, wie dem Windows Explorer oder dem KDE Konqueror. Durch Drücken der Pfeiltasten nach oben und nach unten verschieben Sie das ausgewählte Verzeichnis eine Zeile nach oben oder unten. Die linke Pfeiltaste klappt die Unterverzeichnisse ein, wiederholtes Drücken der linken Pfeiltaste springt dann tatsächlich nach links.

  Sie können direkt zwischen dem Vorgabe- und dem Alternativmodus wechseln, indem Sie <Umschalt-A> drücken.

  Wenn der alternative Navigationsmodus eingeschaltet ist, sehen Sie ein »A« in der unteren rechten Ecke.

-TC, --center-tree

  zentriert die Ansicht im grafischen Baum. Das ausgewählte Verzeichnis steht in der Mitte des Bildschirms. Der zentrierte Modus kann mit der Taste <t> im grafischen Baum an- und abgeschaltet werden.

  Die vorgegebene nicht-zentrierte Ansicht, welche die Baumbewegungen minimiert, entspricht derjenigen im originalen NCD.

-Tc, --compact-tree

  Per Vorgabe wird die »grafische« Baumansicht auf die gleiche Art gezeichnet wie im originalen NCD unter DOS. Dort darf ein Verzeichnispfad nicht länger als 66 Zeichen sein. Mit den heute üblichen tiefen Verzeichnisstrukturen kann der Baum sehr breit werden. Um dies zu vermeiden, kann wcd den Baum in einer Kompaktansicht darstellen, mit einem Verzeichnis pro Zeile, wie in den meisten grafischen Dateimanagern. Verwenden Sie die Option -Tc oder schalten Sie direkt mit der Taste <m> um.

-Td, --cjk-width

  Veraltete ostasiatische CJK-Schriften (Chinesisch, Japanisch und Koreanisch) haben bestimmte Zeichen und Symbole zum Zeichnen von Linien mit einer Breite von zwei Spalten, während die Zeichenbreite in normalem Unicode eine Spalte beträgt. Beispielsweise sind das die chinesische CP936-Rasterschrift unter Windows und die Simsun-Schrift. Verwenden Sie diese Option zur korrekten Ausrichtung der grafischen Baumansicht, wenn eine veraltete CJK-Schrift verwendet wird.

  Wenn der CJK-Modus eingeschaltet ist, wird ein »C« in der unteren rechten Ecke angezeigt.

-u BENUTZER

  liest die Daten eines anderen Benutzers für die Baumansicht basierend auf BENUTZER ein. Ihre eigene Datei für die Baumansicht wird nicht eingelesen. Siehe auch WCDUSERSHOME im Abschnitt UMGEBUNGSVARIABLEN.

  Unter Unix/Cygwin wird `/home` als Wurzel für die Benutzerverzeichnisse angenommen. Wcd schaut nach `/home/BENUTZER/.treedata.wcd` und `/home/BENUTZER/.wcd/.treedata.wcd`, in dieser Reihenfolge. Davon wird die erste existierende und lesbare Datei gelesen. Unter DOS/Windows wird `\\users` als Wurzelverzeichnis der Benutzer angenommen, daher versucht wcd `\\users\BENUTZER\treedata.wcd` und `\\users\BENUTZER\.wcd\treedata.wcd` zu lesen.

+u BENUTZER

  liest die vorgegebene Baumansicht-Datei von BENUTZER zusätzlich zu Ihrer eigenen Baumansicht-Datei ein.

-v, --verbose

  zeigt ausführliche Meldungen an. Mit dieser Option zeigt wcd alle Filter, Verbannungen und Ausschlüsse an.

-V, --version

  zeigt Versionsinformationen an und beendet das Programm.

-w, --wild-match-only

  zeigt nur Übereinstimmungen von Platzhaltern an. Alle Treffer werden als Platzhalter-Treffer angenommen.

-x PFAD

  schließt PFAD vom Einlesen aus.

  Mit dieser Option schließt wcd PFAD und dessen Unterverzeichnisse aller Ebenen beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und auf absolute Pfade angewendet. Die Option -x kann mehrfach angegeben werden.

      wcd -x <Pfad1> -x <Pfad2> -s

  Die Option -x muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E).

  Unter DOS/Windows müssen Sie den Laufwerksbuchstaben angeben, je nachdem, ob eine der Variablen HOME oder WCDHOME gesetzt ist. Falls HOME oder WCDHOME gesetzt ist, müssen Sie den Laufwerksbuchstaben angeben. Ein Beispiel:

      wcd -x c:/temp -S c:

  Anderenfalls geben Sie keinen Laufwerksbuchstaben an.

      wcd -x /temp -s

-xf DATEI

  schließt alle in DATEI aufgelisteten Pfade vom Einlesen aus.

  Wenn diese Option ausgewählt ist, schließt wcd alle in DATEI aufgelisteten Pfade und sämtliche derer Unterverzeichnisse beim Einlesen eines Laufwerks aus. Platzhalter werden unterstützt und Namensübereinstimmungen werden auf den absoluten Pfad bezogen. Beachten Sie, dass wcd führende und angehängte Leerzeichen in einer Zeile nicht ignoriert, da sie als Zeichen in einem Verzeichnisnamen zulässig sind. Die Option -xf kann mehrfach angegeben werden. Mit folgendem Befehl schließen Sie alle verbannten Pfade vom Einlesen aus (Beispiel für wcd unter Unix):

      wcd -xf ~/.ban.wcd -s

  Platzhalter werden unterstützt. Um beispielsweise alle Ihre Subversion-Verzeichnisse mit administrativen Dateien auszuschließen, fügen Sie eine Zeile mit `*/.svn` hinzu.

  Die Option -xf muss vor jeder anderen Einleseoption angegeben werden (-s, -S, +S, -A, -E).

-y, --assume-yes

  beantwortet alle Abfragen automatisch mit »ja«.

  Wcd gibt keine Ja-/Nein-Abfragen an den Benutzer aus, nimmt aber an, dass der Benutzer stets auf alle Fragen mit Ja antworten würde. Dies kann in Verbindung mit der Option -rmtree verwendet werden. Diese Option muss vor allen Optionen angegeben werden, die zu Ja-/Nein-Abfragen führen könnten.

-z ZAHL

  setzt die maximale Stapelgröße auf ZAHL.

  Die vorgegebene Größe des Stapels ist 10. Stapeloperationen können deaktiviert werden, indem die Größe auf 0 gesetzt wird. Diese Option muss stets vor anderen Stapeloperationen angegeben werden (-,+,=). Anderenfalls wird die Stapelgröße wieder auf den Vorgabewert 10 zurückgesetzt.

  Ein korrekter Befehl ist:

      wcd -z 50 -

  Die neue Stapelgröße ist 50 und wcd geht ein Verzeichnis zurück. Ein falscher Befehl wäre:

      wcd - -z 50

  Wcd geht ein Verzeichnis zurück und der Stapel erhält die Vorgabegröße 10. Das Argument -z 50 wird ignoriert.

  Fügen Sie dies als erste Option zu Ihrem wcd-Alias oder Ihrer wcd-Funktion hinzu. Für eine POSIX-kompatible Shell wäre das:

      wcd ()
      {
          wcd.exe -z 50 "$@"
          . ${WCDHOME:-${HOME}}/bin/wcd.go
      }

-[ZAHL]

  legt ein Verzeichnis auf den Stapel (ZAHL mal). Vorgabe ist 1.

  Geht ein Verzeichnis zurück. Der Befehl `wcd -` geht ein Verzeichnis zurück. Um mehrere Verzeichnisse zurückzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls `wcd -3`. Der Stapel ist zyklisch.

+[ZAHL]

  nimmt ein Verzeichnis vom Stapel (ZAHL mal). Vorgabe ist 1.

  Geht ein Verzeichnis vor. Der Befehl `wcd +` geht ein Verzeichnis vor. Um mehrere Verzeichnisse vorzugehen, fügen Sie eine Zahl hinzu, zum Beispiel in Form des Befehls `wcd +2`. Der Stapel ist zyklisch.

=

  zeigt den Stapel an.

  Verwenden Sie diese Option, wenn Sie nicht mehr wissen, wie oft Sie im Stapel die Ebene gewechselt haben. Der Stapel wird ausgegeben und Sie können eine Zahl wählen. Die aktuelle Position im Stapel ist mit einem Asterisk `*` markiert.

# INSTALLATION

Das aktuelle Arbeitsverzeichnis einer Unix-Shell kann nur über den eingebauten cd(1)-Befehl gewechselt werden. Daher wird das Programm stets über eine Funktion oder einen Alias ausgeführt. Die Funktion oder der Alias verwenden ein Shell-Skript (das Go-Skript), welches von wcd erzeugt wird. Wcd funktioniert erst dann, wenn die Funktion oder der Alias definiert wurde.

Weiteren wichtigen Einfluss auf Ihre Installation nimmt die Definition der Umgebungsvariablen HOME und WCDHOME. Siehe den Abschnitt UMGEBUNGSVARIABLEN.

## Installation für POSIX-Shells

Wenn wcd mit einer Paketverwaltung installiert wurde, kann die wcd-Funktion in /etc/profile.d installiert und automatisch bezogen werden. In diesem Fall ist es nicht erforderlich, eine eigene Funktion zu definieren.

Für eine POSIX-Shell (ksh, bash, zsh, etc.) unter Unix, Linux, Cygwin oder nativem MSYS fügen Sie die folgende Funktion zur Shell-Startdatei hinzu (die Bash verwendet zum Beispiel `$HOME/.bashrc`):

    wcd ()
    {
        typeset go="${WCDHOME:-${HOME}}/bin/wcd.go"
        rm -f "$go" 2> /dev/null
        PATH/wcd.exe "$@"
        [ -f "$go" ] && . "$go"
    }

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell.

Der Ort des Go-Skripts `wcd.go` ist abhängig von der Shell selbst.

Wcd für die auf DJGPP basierende DOS-Bash und die OS/2-Bash erfordert eine andere Funktionalität. Das Go-Skript wird nicht in einem Verzeichnis `bin` gespeichert, und falls weder WCDHOME noch HOME definiert sind, wird das Go-Skript nach c:/ geschrieben.

DOS-Bash:

    wcd ()
    {
        PATH/wcdbash.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

OS/2-Bash:

    wcd ()
    {
        PATH/wcdos2bash.exe "$@"
        . ${WCDHOME:-${HOME:-"c:"}}/wcd.go
    }

Die WinZsh-Version von wcd erfordert eine etwas andere Funktion. Das Go-Skript wird niemals in c:/ gespeichert.

    wcd ()
    {
        PATH/wcdwin32zsh.exe "$@"
        . ${WCDHOME:-${HOME}}/wcd.go
    }

Weitere Informationen finden Sie im Abschnitt DATEIEN.

## Installation für C-ähnliche Shells (csh, tcsh)

Fügen Sie den folgenden Alias zur Shell-Startdatei `$HOME/.cshrc` oder `$HOME/.tcshrc` hinzu:

    if ( ${?WCDHOME} ) then
        alias wcd "PATH/wcd.exe \!* ; source $WCDHOME/bin/wcd.go"
    else
        alias wcd "PATH/wcd.exe \!* ; source $HOME/bin/wcd.go"
    endif

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Laden Sie die Initialisierungsdateien der Shell neu oder starten Sie eine neue Shell.

## Version für den Windows-Befehlszeileninterpreter

Entpacken Sie die Zip-Datei und fügen Sie den Ordner `bin` zu Ihrer Umgebungsvariable PATH hinzu.

Im Windows-Befehlszeileninterpreter kann ein Windows-Programm das aktuelle Arbeitsverzeichnis nicht wechseln, das ist aber mit einer .bat-Datei möglich. Das Batch-Skript `wcd.bat` ruft das wcd-Programm auf, welches seinerseits das neue Batch-Skript `wcdgo.bat` erzeugt. Dann führt `wcd.bat` wiederum `wcdgo.bat` aus, welches tatsächlich das Verzeichnis wechselt.

## Windows VISTA und neuer

Im Befehlszeileninterpreter in Windows VISTA oder neueren Versionen ist der Zugriff auf Verzeichnisse eingeschränkt. Um Zugriff auf weitere Verzeichnisse zu erhalten, benötigen Sie Administratorrechte. Einen Befehlszeileninterpreter mit Administratorrechten erhalten Sie, wenn Sie mit der rechten Maustaste auf das Programmsymbol des Befehlszeileninterpreters klicken und Als Administrator ausführen wählen.

## Version für die Windows PowerShell

Fügen Sie die folgende Funktion zu Ihrem PowerShell-Benutzerprofil hinzu. Der Ort dieses Profils wird durch die Variable $profile bestimmt. Es ist erforderlich, dass eine der Umgebungsvariablen HOME oder WCDHOME definiert ist.

    function wcd
    {
        PATH\wcdwin32psh.exe $args
        & $env:HOME\wcdgo.ps1
    }

PFAD wird durch den Ort ersetzt, in dem das ausführbare wcd-Programm gespeichert ist. Starten Sie eine neue PowerShell. Wcd für die PowerShell unterstützt nur den Dateisystemtreiber und keine weiteren Treiber.

## Version für den Befehlszeileninterpreter von OS/2

Im Befehlszeileninterpreter von OS/2 (cmd.exe) kann ein OS/2-Programm das aktuelle Arbeitsverzeichnis nicht wechseln. Daher erzeugt wcd ein Befehlsskript `wcdgo.cmd`, das in der aktuellen Shell ausgeführt werden muss. Das Skript `wcd.cmd` führt zuerst `wcdos2.exe` aus, welches seinerseits das Skript `wcdgo.cmd` erzeugt. Danach führt `wcd.cmd` das Skript `wcdgo.cmd` aus.

# LOKALISIERUNG

LANG

  Die primäre Sprache wird durch die Umgebungsvariable LANG festgelegt. Diese Variable besteht aus mehreren Teilen: Den ersten Teil bilden zwei Kleinbuchstaben, die den Sprachcode angeben. Der zweite Teil ist optional und bezeichnet den Ländercode in Großbuchstaben, vom davor stehenden Sprachcode durch einen Unterstrich getrennt. Der dritte Teil ist ebenfalls optional und gibt die Zeichenkodierung an, vom Ländercode durch einen Punkt getrennt. Einige Beispiele für Standard-POSIX-Shells:

      export LANG=de               Deutsch
      export LANG=de_DE            Deutsch, Deutschland
      export LANG=de_CH            Deutsch, Schweiz
      export LANG=es_ES            Spanisch, Spanien
      export LANG=es_MX            Spanisch, Mexiko
      export LANG=en_US.iso88591   English, USA, Latin-1-Zeichenkodierung

  Eine vollständige Liste der Sprachen und Ländercodes finden Sie im Handbuch zu gettext(1): https://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes. Auf Unix-Systemen können Sie den Befehl locale(1) verwenden, um spezifische Informationen zur Spracheinstellung zu erhalten.

LANGUAGE

  Mit der Umgebungsvariable LANGUAGE können Sie eine Prioritätenliste für Sprachen übergeben, die Sie durch Doppelpunkte voneinander trennen. Dos2unix gibt LANGUAGE vor LANG den Vorzug, zum Beispiel bei Deutsch vor Niederländisch: `LANGUAGE=de:nl`. Sie müssen zunächst die Lokalisierung aktivieren, indem Sie die Variable LANG oder LC_ALL auf einen anderen Wert als C setzen, bevor Sie die Liste der Sprachprioritäten nutzen können. Weitere Informationen finden Sie im Gettext-Handbuch: https://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable

  Falls Sie eine Sprache auswählen, die nicht verfügbar ist, erhalten Sie die Standardmeldungen in englischer Sprache.

WCDLOCALEDIR

  Mit der Umgebungsvariable WCDLOCALEDIR kann die während der Kompilierung und Installation verwendete Variable LOCALEDIR außer Kraft gesetzt werden. LOCALEDIR wird von wcd mit vorhandener nativer Sprachunterstützung verwendet, um die Sprachdateien zu finden. Der GNU-Vorgabewert ist `/usr/local/share/locale`. Nach Eingabe von `wcd -V` wird das von wcd verwendete LOCALEDIR angezeigt.

  Falls Sie wcd in einem anderen als dem Vorgabeverzeichnis installiert haben, müssen Sie die Umgebungsvariable WCDLOCALEDIR setzen, die auf das Verzeichnis mit den Sprachdateien zeigt.

  Ein Beispiel für den Windows-Befehlszeileninterpreter:

      set WCDLOCALEDIR=c:/my_prefix/share/locale

  Ein Beispiel für eine POSIX-Shell:

      export WCDLOCALEDIR=$HOME/share/locale

LC_COLLATE

  Wenn mehrere Treffer für Verzeichnisse gefunden werden, zeigt wcd eine sortierte Liste an. Die Art der Sortierung hängt von der Spracheinstellung ab. Falls die Umgebungsvariable LANG gesetzt ist, werden die Treffer wie in Wörterbüchern oder Telefonbüchern in dieser Sprache sortiert. Beispielsweise werden Punkte und Bindestriche ignoriert. Buchstaben mit oder ohne Akzentzeichen werden nicht unterschiedlich behandelt, und Groß-/Kleinschreibung wird nicht berücksichtigt.

  Die Sortierung bevorzugt die Umgebungsvariable LC_COLLATE vor LANG. Falls Sie LC_COLLATE auf `C` oder `POSIX` setzen, wird die sprachbezogene Sortierung abgeschaltet. Wenn Sie beispielsweise Deutsch bevorzugen, dies aber nicht für die Sortierung gelten soll, verwenden Sie Folgendes:

      export LANG=de_DE
      export LC_COLLATE=C

LC_CTYPE

  Hinsichtlich Zeichenkodierung bevorzugt Wcd die Variable LC_CTYPE vor LANG. Um beispielsweise die Zeichenkodierung auf UTF-8 zu setzen, können Sie Folgendes ausführen:

      export LC_CTYPE=en_US.UTF-8

LC_ALL

  Alle lokalen Umgebungsvariablen, die mit LC_ beginnen, werden durch die Umgebungsvariable LC_ALL außer Kraft gesetzt, sofern diese definiert ist. Wcd bevorzugt LC_ALL vor LC_COLLATE und LC_CTYPE.

## WINDOWS CODE PAGES

Es gibt zwei Gruppen von Codepages, die DOS Codepages (OEM) und die Windows Codepages (ANSI). Die vorgegebene Zeichenkodierung für Windows ist ANSI CP1252, wenn westeuropäische Regionaleinstellungen konfiguriert sind. Windows-Programme, wie beispielsweise Notepad, benutzen diese durch das System vorgegebene ANSI-Codepage. Die Windows-Konsole verwendet standardmäßig eine OEM-Codepage (CP437 oder CP850), um Abwärtskompatibilität zu DOS-Programmen zu gewährleisten. Wenn Sie eine DOS-Version von wcd in der Windows-Konsole verwenden, wird dies aufgrund der DOS-Codepage funktionieren, allerdings fehlt der DOS-Version von wcd unter Windows die Unterstützung für lange Verzeichnisnamen und Netzlaufwerke.

Die Windows-Version von wcd ist ein natives Windows-Programm, das die ANSI-Codepage des Windows-Systems verwendet. Auf einem Windows mit westeuropäischen Regionaleinstellungen wird so die Codepage CP1252 für Verzeichnisnamen und Meldungen verwendet. Um konsistente, von der aktiven Codepage unabhängige Ausgaben zu erzielen, übersetzen alle Windows-Versionen von wcd die ANSI-Ausgaben im Befehlszeileninterpreter und der PowerShell in Unicode-Ausgaben.

Die Rasterschrift der Konsole unterstützt nur die originale OEM-Codepage, die mit Windows installiert wurde, daher müssen Sie die Schriftart der Konsole auf die TrueType-Schrift »Lucida Console« ändern, damit Unicode- und ANSI-Zeichen korrekt angezeigt werden.

Die Nicht-Unicode-Versionen von Wcd vor Version 5.2.0 verwenden die gewöhnliche ANSI-Ausgabe. Für diese älteren Versionen muss die Codepage der Konsole der System-Codepage angeglichen werden (auf 1252), damit wcd unter Windows spezielle Zeichen wie Akzentzeichen oder das Euro-Symbol korrekt anzeigen kann.

Die Windows-System-Codepage kann in den Regionaleinstellungen der Systemsteuerung geändert werden. Die Codepage der Windows-Konsole wird mit dem Befehl `chcp` geändert.

Wenn Sie `wcd -V` eingeben, wird die gegenwärtige von wcd verwendete Zeichenkodierung angezeigt. Geben Sie den Befehl `chcp` ein, um die aktive Codepage für die Windows-Konsole anzuzeigen.

## UNICODE

Wcd verfügt über optionale Unterstützung für Unicode. Um zu sehen, ob wcd mit Unicode-Unterstützung erstellt wurde, geben Sie `wcd -V` ein. Sofern Ihr Terminal oder Ihre Konsole sowie die Schriftart es unterstützt, sollten Sie das Euro-Symbol und chinesische Zeichen sehen (echte chinesische Zeichen, keinen chinesisch aussehenden Zeichensalat).

Wcd wurde weich auf Unicode migriert. In dessen Kern werden alle Daten als Byte-Datenstrom verarbeitet. Nur die auf dem Bildschirm ausgegebenen Zeilen werden unmittelbar in Unicode-Zeichen umgewandelt. Wcd verwendet vollständig libc-Funktionen und enthält keinen UTF-8-spezifischen Code. Siehe auch https://www.cl.cam.ac.uk/~mgk25/unicode.html.

Wcd verfügt über optionale Unterstützung für Unicode-Suche mit Normalisierung. Um zu ermitteln, ob wcd mit Unterstützung für Normalisierung erstellt wurde, geben Sie `wcd -V` ein. Wcd mit Unicode-Normalisierung findet Treffer mittels kompatiblen Entsprechungen. Ohne diese Unterstützung werden Verzeichnisse nur gefunden, wenn Sie kanonisch äquivalent sind. Siehe auch https://de.wikipedia.org/wiki/Normalisierung_%28Unicode%29.

### UTF-8 unter Unix/Linux

Um UTF-8-Zeichen in Ihrer Konsole oder Ihrem Terminal anzeigen zu lassen, muss dieses auch UTF-8 unterstützen. Die mit XFree86 4.0 oder neuer gelieferte Version von xterm bringt UTF-8-Unterstützung bereits mit. Um dies zu aktivieren, starten Sie xterm(1) mit einer UTF-8-Spracheinstellung und verwenden Sie eine Schriftart mit der Zeichenkodierung iso10646-1, zum Beispiel mit

    LC_CTYPE=en_GB.UTF-8 xterm -u8 -fn '-Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1'

Moderne GNU-Linux-Distributionen unterstützen UTF-8 per Vorgabe. Andere Multibyte-Zeichenkodierungen sollten auch funktionieren, allerdings wurde dies nicht getestet.

Wcd nimmt an, dass die Baumdateien in der lokalen Zeichenkodierung vorliegen. In die Baumdateien werden keine Bytereihenfolge-Markierungen geschrieben.

### UTF-16 unter Windows

Unter Windows wird Unicode in allen Versionen der PowerShell sowie im Befehlszeileninterpreter von Windows 7 (oder neuer) unterstützt. Unicode funktioniert auch in Take Command oder TCC/LE von JP Software, welches in älteren Windows-Versionen verwendet werden kann (XP/Vista).

Unter Windows sind alle Verzeichnisnamen in Unicode UTF-16 kodiert. Für Nicht-Unicode-Windows-Programme werden die Unicode-Zeichen in die vorgegebene ANSI-Codepage übersetzt. Bei Zeichen, die nicht Teil der Regionaleinstellung sind, ist diese Übersetzung nicht möglich. Daher geben Nicht-Unicode-Programme stattdessen ein Fragezeichen oder ein falsches Zeichen aus.

Wcd mit Unicode-Unterstützung liest die in UTF-16 kodierten Verzeichnisnamen und wandelt diese intern in UTF-8 um. Alle Baumdateien sind in UTF-8 kodiert und nicht zu den Nicht-Unicode-Versionen von wcd kompatibel. Wcd erstellt ein in UTF-8 kodiertes Go-Skript.

Alle Versionen der Windows Powershell können in UTF-8 kodierte Skripte ausführen, sofern sich im Skript eine BOM (Bytereihenfolge-Markierung) für UTF-8 befindet.

Seit Windows 7 ist es möglich, im Windows-Befehlszeileninterpreter mit einem Batch-Skript in ein Verzeichnis zu wechseln, dessen Name Unicode-Zeichen enthält. Der Verzeichnisname muss in UTF-8 kodiert sein, und das Batch-Skript darf keine BOM enthalten (Markierung der Bytereihenfolge). Die aktive Codepage des Befehlszeileninterpreters muss vor dem cd-Befehl auf 65001 (UTF-8) gesetzt werden. Wcd für den Befehlszeileninterpreter erstellt ein solches Go-Skript `wcdgo.bat`. Es ändert zuerst die Codepage in 65001, wechselt dann das Verzeichnis und setzt zum Schluss die Codepage auf die ursprüngliche Einstellung zurück.

Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Zeichen nicht korrekt angezeigt werden.

Die Nicht-Unicode-Version von wcd für Windows liest Unicode-Baumdateien seit Version 5.2.0, sofern sich eine BOM (Markierung der Bytereihenfolge) in der Datei befindet (siehe https://de.wikipedia.org/wiki/Byte_Order_Mark). Allerdings ist es nicht möglich, in Verzeichnisse zu wechseln, deren Namen Unicode-Zeichen enthalten, die nicht Teil der vorgegebenen ANSI-Codepage des Systems sind. Die Unicode-Version von wcd für Windows schreibt seit Version 5.2.0 eine BOM in die in UTF-8 kodierten Baumdateien, wodurch diese auch in Notepad lesbar sind.

### UTF-8 unter Cygwin

Cygwin unterstützt Unicode seit Version 1.7. Die Cygwin-Zwischenschicht achtet darauf, dass die UTF-16-Namen unter Windows in UTF-8 umgewandelt werden. Daher brauchen Programme, wie beispielsweise wcd, darauf keine Rücksicht zu nehmen und können mit einer UTF-8-Zeichenkodierung wie unter Unix/Linux arbeiten. Setzen Sie die Zeichenkodierung mit der Umgebungsvariable LANG oder LC_CTYPE auf UTF-8. Es wird nötig sein, dass Sie Ihre Laufwerke neu einlesen. Sie müssen die Schrift auf die TrueType-Schriftart »Lucida Console« setzen (nicht auf die Rasterschrift), falls Sie die Cygwin-Standardkonsole verwenden.

Die Cygwin-Version verhält sich exakt genauso wie die Unix-Version von wcd. Es wird keine Markierung der Bytereihenfolge (BOM) in die Baumdateien geschrieben, und es wird angenommen, dass die Dateien in der Zeichenkodierung vorliegen, die von der Spracheinstellung in Cygwin vorgegeben ist.

# DATEIEN

Falls die Umgebungsvariable WCDHOME gesetzt ist, verwendet wcd WCDHOME anstelle von HOME. Alle `*.wcd`-Dateien sind Textdateien, die mit einem Texteditor bearbeitet werden können. Die Wcd-Version für den Windows-Befehlszeileninterpreter verhält sich wie die DOS-Version, und die Cygwin-Version verhält sich wie die Unix-Version.

wcd.exe

  Das Programm. In Unix-Shells wird das Programm stets durch eine Funktion oder einen Alias aufgerufen, da das aktuelle Arbeitsverzeichnis einer Unix-Shell nur mit dem eingebauten cd-Befehl gewechselt werden kann. Siehe auch Abschnitt INSTALLATION.

vorgegebene Baumdatei

  Dies ist die vorgegebene Baumdatei, in der wcd nach Treffern sucht. Falls diese nicht lesbar ist, erstellt wcd eine neue Datei.

      DOS: \treedata.wcd or %HOME%\treedata.wcd
      Unix: $HOME/.treedata.wcd

zusätzliche Baumdatei

  Eine optionale zusätzliche Baumdatei. Falls diese existiert und lesbar ist, sucht wcd auch in dieser Datei nach Treffern.

      DOS: \extra.wcd or %HOME%\extra.wcd
      Unix: $HOME/.extra.wcd

Bann-Datei

  In dieser optionalen Datei speichert wcd die verbannten Pfade. Siehe Option -b. Platzhalter werden unterstützt.

      DOS: \ban.wcd or %HOME%\ban.wcd
      Unix: $HOME/.ban.wcd

Alias-Datei

  Optionale Datei mit Aliasen für wcd. Siehe Option -l.

      DOS: \alias.wcd or %HOME%\alias.wcd
      Unix: $HOME/.alias.wcd

Stapeldatei

  In dieser Datei speichert wcd den Stapel. Der Laufwerksbuchstabe kann mit der Option -d geändert werden.

      DOS: c:\stack.wcd or %HOME%\stack.wcd
      Unix: $HOME/.stack.wcd

  Der Name der Stapeldatei kann mit der Umgebungsvariable WCDSTACKFILE geändert werden. Siehe Abschnitt UMGEBUNGSVARIABLEN.

Go-Skript

  Dies ist das Shell-Skript, welches wcd.exe jedes Mal erzeugt. Es wird über eine Funktion oder einen Alias eingelesen. Der Laufwerksbuchstabe kann mit der Option -d geändert werden. Aus historischen Gründen ist es per Vorgabe auf Unix-Systemen in `$HOME/bin` gespeichert. Das Verzeichnis für diese Datei kann mit der Option -G geändert werden.

      DOS-Bash: c:/wcd.go oder $HOME/wcd.go
      Windows Befehlszeileninterpreter: c:\wcdgo.bat oder %HOME%\wcdgo.bat
      Windows PowerShell: $env:HOME\wcdgo.ps1
      WinZsh: $HOME/wcd.go
      Cygwin/MSYS: $HOME/bin/wcd.go
      OS/2-Befehlszeileninterpreter: c:\wcdgo.cmd oder %HOME%\wcdgo.cmd
      OS/2-Bash: c:/wcd.go oder $HOME/wcd.go
      Unix: $HOME/bin/wcd.go

Datei für relative Baumansicht

  Textdatei mit relativen Pfaden von VERZEICHNIS. Siehe die Optionen +S, -n und +n.

      DOS: PATH\rtdata.wcd
      Unix: PATH/.rtdata.wcd

# UMGEBUNGSVARIABLEN

HOME

  Wcd verwendet per Vorgabe die Umgebungsvariable HOME, um zu ermitteln, wo Dateien gespeichert werden sollen. Siehe auch den Abschnitt DATEIEN. Dies kann mit der Umgebungsvariable WCDHOME außer Kraft gesetzt werden.

  HOME legt außerdem fest, wo mit dem Einlesen des Laufwerks begonnen wird, wenn die Option -s verwendet wird. Dies kann mit der Umgebungsvariable WCDSCAN außer Kraft gesetzt werden.

  In den Versionen für Unix, Cygwin, Windows PowerShell, WinZsh und MSYS ist es erforderlich, dass HOME oder WCDHOME gesetzt ist. Für die anderen Versionen von wcd ist die Benutzung dieser Variablen optional.

  Falls HOME unter DOS/Windows gesetzt ist, platziert wcd alle seine Dateien (treedata.wcd, extra.wcd, alias.wcd, ban.wcd, wcd.go) im Verzeichnis HOME. Das Verhalten von wcd gleicht dann dem der Unix-Versionen. Wcd liest die Daten dann per Vorgabe aus HOME ein. Laufwerke werden nicht automatisch eingelesen, wenn Sie dorthin wechseln. Sie müssen wcd explizit dazu anweisen, zum Beispiel:

      wcd -S c: -A d: -A e:

  Die Verzeichnissuche wird nun global in allen eingelesenen Laufwerken ausgeführt.

WCDHOME

  Mit der Umgebungsvariable WCDHOME können Sie den Ort der Dateien von wcd ändern. Falls sowohl HOME als auch WCDHOME gesetzt ist, wird WCDHOME anstelle von HOME verwendet.

  In Wcd-Versionen vor 5.1.5 wurde durch WCDHOME auch das vorgegebene Einleseverzeichnis geändert. Seit Version ist dies nicht mehr der Fall, siehe Option -s. Verwenden Sie ab Version 5.1.5 die Umgebungsvariable WCDSCAN, um die Einstellung des vorgegebenen Einleseverzeichnisses außer Kraft zu setzen.

  Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

      set WCDHOME=C:\Users\erwin\wcd

  Ein Beispiel für POSIX-Shells:

      export WCDHOME="$HOME/.wcd"

  Ein Beispiel für Csh-Shells:

      setenv WCDHOME "$HOME/.wcd"

WCDSCAN

  Verwenden Sie die Umgebungsvariable WCDSCAN, um die Einstellung des vorgegebenen Einleseverzeichnisses HOME außer Kraft zu setzen. Geben Sie eine durch Doppelpunkte getrennte Liste an (für Unix), wenn Sie mehr als ein Verzeichnis angeben wollen. Unter DOS/Windows verwenden Sie Semikola als Trennzeichen.

  Beispiel für die Befehlszeileninterpreter von DOS, Windows und OS/2:

      set WCDSCAN=C:\Users\erwin;D:\data

      set WCDSCAN=%HOMEDRIVE%%HOMEPATH%;\\projectdrive\projectX

  Ein Beispiel für POSIX-Shells:

      export WCDSCAN="$HOME:/projectdisk/projectX"

  Ein Beispiel für Csh-Shells:

      setenv WCDSCAN "$HOME:/projectdisk/projectX"

WCDFILTER

  Geben Sie Filter mit der Umgebungsvariable WCDFILTER an. Alle Verzeichnisse, die nicht auf diese(n) Filter passen, werden ignoriert. Sie können eine Liste angeben, in der Sie die einzelnen Filter aneinanderreihen und dazwischen das Pfad-Trennzeichen Ihrer Shell setzen. Dies funktioniert ähnlich wie die Angabe der Variable PATH. Ob dabei Groß-/Kleinschreibung berücksichtigt wird, hängt vom jeweiligen Betriebssystem ab.

  Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

      set WCDFILTER=projects;doc

  Ein Beispiel für POSIX-Shells:

      export WCDFILTER="projects:doc"

  Ein Beispiel für Csh-Shells:

      setenv WCDFILTER "projects:doc"

WCDBAN

  Die in der Umgebungsvariable WCDBAN angegebenen Pfade werden gebannt, siehe auch die Option -b. Geben Sie eine Liste der Pfade an, durch das PATH-Trennzeichen der Shell getrennt.

WCDEXCLUDE

  Die in der Umgebungsvariable WCDEXCLUDE angegebenen Pfade werden von wcd ausgeschlossen, siehe auch die Optionen -x und -xf. Geben Sie eine Liste der Pfade an, durch das PATH-Trennzeichen der Shell getrennt.

  Beispiel für die Befehlszeileninterpreter in DOS, Windows, OS/2:

      set WCDEXCLUDE=*/windows;*/temp;*CVS

  Ein Beispiel für POSIX-Shells:

      export WCDEXCLUDE="/dev:/tmp:*CVS"

  Ein Beispiel für Csh-Shells:

      setenv WCDEXCLUDE "/dev:/tmp:*CVS"

WCDUSERSHOME

  Dies legt das übergeordnete Verzeichnis der Home-Verzeichnisse der Benutzer fest. Unter DOS/Windows ist der Standardwert `\\users`. Unter Unix/Cygwin ist `/home` die Vorgabe. Die Variable wird verwendet, um die Baumdateien anderer Benutzer einzulesen. Siehe auch die Optionen -u und +u. Im ausführlichen Modus gibt wcd alle Filter sowie gebannte und auszuschließende Verzeichnisse aus. Siehe Option -v.

WCDSTACKFILE

  Wcd bevorzugt WCDSTACKFILE gegenüber dem vorgegebenen Namen der Stapeldatei (siehe Abschnitt DATEIEN). Mit dieser Variable kann jede Shell oder jede Terminalemulation ihren eigenen Verzeichnisstapel haben.

  So verwenden Sie eine eindeutige zeitbasierte Datei (JJJJMMTT-HHMMSS) für jede geöffnete interaktive Shell:

      export WCDSTACKFILE=$HOME/.wcd/stack.$(date +%Y%m%d-%H%M%S)

  Für einen Stapel pro xterm(1) verwenden Sie die Umgebungsvariable WINDOWID:

      export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOWID

  Einen Stapel pro Bildschirm erreichen Sie für GNU screen(1) so:

      export WCDSTACKFILE=$HOME/.wcd/stack.$WINDOW

TERMINFO

  Wenn die Umgebungsvariable TERMINFO, sucht wcd mit ncurses-Schnittstelle nach einer lokalen Teminaldefinition, bevor am Standardort gesucht wird. Dies ist sinnvoll für Terminaldefinitionen, die sich nicht an einem vorgegebenen Ort befinden. Oft verwendete Standardorte sind `/usr/lib/terminfo` und `/usr/share/terminfo`.

PDC_RESTORE_SCREEN

  Wcd mit PDCurses-Schnittstelle berücksichtigt die Umgebungsvariable PDC_RESTORE_SCREEN. Falls diese Umgebungsvariable gesetzt ist, erzeugt PDCurses eine Kopie des Bildschirminhalts zur Startzeit von wcd. Beim Abbruch von wcd wird der Bildschirm wiederhergestellt. Ein Beispiel für den Windows-Befehlszeileninterpreter:

      set PDC_RESTORE_SCREEN=1

  Windows kann nur einen kleinen Puffer speichern. Es ist daher nicht immer möglich, alles wiederherzustellen. Andererseits kann in der Konsole nach dem Beenden von wcd Datenmüll ausgegeben werden, falls Sie den Puffer größer gewählt haben.

SHELL

  Die Angabe von `#!$SHELL` in der ersten Zeile des Go-Skripts (für POSIX- oder C-Shells) ist für 8-Bit-Zeichen nötig. Einige Shells könnten sonst annehmen, dass es sich bei dem Go-Skript um eine Binärdatei handelt und diese nicht einlesen. In der Cygwin-Bash muss die Variable SHELL mit dem Befehl `export` gesetzt werden, sonst kann wcd diese Variable nicht lesen.

BASH

  Wcd für die DOS-Bash verwendet `$BASH` anstelle von `$SHELL`, weil `$SHELL` auf die DOS-Befehlsshell zeigt. `$BASH` muss mit einem `export`-Befehl definiert werden, anderenfalls kann wcd die Variable nicht lesen.

# SIEHE AUCH

sh(1), bash(1), csh(1), ksh(1), zsh(1), locale(1), ncurses(1),

# AUTOREN

Wcd wurde von Erwin Waterlander <waterlan@xs4all.nl> geschrieben.

Projektseite: https://waterlander.net/wcd/

SourceForge: https://sourceforge.net/projects/wcd/

Die Formatierung der Handbuchseite wurde von Jari Aalto <jari.aalto@cante.net> bereitgestellt.

NCD wurde ursprünglich von Brad Kingsbury für Peter Nortons »Norton Utilities« etwa 1987 geschrieben. Siehe auch https://www.softpanorama.org/OFM/norton_change_directory_clones.shtml