EnglishFrenchSpanish

OnWorks favicon

wcd - Online in the Cloud

Run wcd in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command wcd that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


wcd - Wherever Change Directory

chdir for DOS and Unix

SYNOPSIS


wcd [options] [directory]

DESCRIPTION


Overview
Wcd is a command-line program to change directory fast. It saves time typing at the
keyboard. One needs to type only a part of a directory name and wcd will jump to it. Wcd
has a fast selection method in case of multiple matches and allows aliasing and banning of
directories. Wcd also includes a full screen interactive directory tree browser with speed
search.

Wcd was modeled after Norton Change Directory (NCD). NCD appeared first in The Norton
Utilities, Release 4, for DOS in 1987, published by Peter Norton.

Wcd has been ported to different command-line shells: DOS command.com, Windows cmd.exe and
PowerShell, OS/2 cmd.exe, and Unix shells such as Bourne (sh), Bourne Again (bash), Korn
(ksh), Z (zsh), and C (csh) shell and others running on any operating system.

Wcd supports 8 bit character sets on all systems, and has optional support for Unicode.
See section LOCALIZATION.

See section INSTALLATION how to setup wcd for personal use.

Basic use
By default (if no wildcards are used) wcd searches for a directory with a name that begins
with the typed name.

For instance this command will change to directory to the current user's
"/home/user/Desktop":

wcd Desk

When there are multiple matches, wcd will present the user a list of all matches. The user
can then make a selection with a few keystrokes (most of the times only one).

Wildcards
Wcd supports following wildcards:

* matches any sequence of characters (zero or more)
? matches any character
[SET] matches any character in the specified set,
[!SET] or [^SET] matches any character not in the specified set.

A set is composed of characters or ranges; a range looks like character hyphen character
as in "0-9" or "A-Z". The "[0-9a-zA-Z_]" is the minimal set of characters allowed in the
"[..]" pattern construct. International characters (i.e. 8 bit characters) are allowed if
the system supports them. To suppress the special syntactic significance of any of
"[]*?!^-\" inside or outside a "[..]" construct and match the character exactly, precede
the character with a backslash ("\") marker.

Using wildcards makes powerful searching possible. For instance this matches any directory
name that ends with "top":

wcd *top

Match directories that have "top" anywhere in the name:

wcd *top*

Match any directory name that begins with "a", "b" or "c":

wcd [a-c]*

It is also possible to give a part of a directory path. Here Wcd searches for directory
that begins with "Desk" and which path matches *me/Desk*.

wcd me/Desk

It is allowed to type any kind of expression with slashes and wildcards. E.g.:

wcd src*/*1?/a*2

Other uses
If no wildcards are used and wcd finds a perfect match, wcd will ignore all wild matches
by default. This behaviour can be changed with the -w option.

The interactive directory tree browser can be started by using option -g.

wcd -g

Wcd generates a treedata file where it searches the directory. On Unix and Windows systems
wcd does add symbolic links to the treedata file while scanning the disk, but does not
follow them. While following links wcd could end up scanning infinite loops, or scan very
large portions of a network.

Wcd can also change to directories that are not in the treedata file. E.g.:

wcd ..

If wcd found a match but can't change to the directory it tries to remove it from the
default treedata file. Not from the extra treedata file. See also option -k.

Wcd keeps a directory stack which is stored on disk. The stack has a default size of 10
and is cyclic. See options -z, -, + and =.

In multi-user environments option -u can be used to change to directories of other users.

On DOS and Windows systems it does not matter if you use a slash "/" or a backslash "\" as
a directory separator.

It is possible on DOS and Windows systems to change drive and directory in one go by
preceding the directory name with the drive name.

wcd d:games

Windows UNC paths
The Windows versions (Command Prompt, PowerShell, MSYS, zsh, cygwin) support Windows SMB
LAN UNC paths without drive letter such as "\\servername\sharename". Wcd for Windows
Command Prompt makes use of the "pushd" command to automatically map a UNC path to a drive
letter. In Windows PowerShell, MSYS, zsh and Cygwin UNC paths are fully supported. The
current working directory can be a UNC path.

Interfaces
Wcd has three different interfaces to choose from a list of matches. The interface can be
chosen at compile time.

The first interface uses plain stdin/stdout. A numbered list is printed in the terminal.
The user has to choose from the list by typing a number followed by <Enter>. This
interface does not provide scroll back functionality in case of a long list. The scroll
back capability of the terminal/console has to be used. It is very small and portable.

The second interface is built with the conio library. It provides a builtin scroll back
capability. The user is presented a list numbered with letters. Choosing from a list can
be done by pressing just one letter. This interface is fast because it saves keystrokes.
If possible the screen will be restored after exiting. One who prefers to type numbers can
use the -N option.

The third interface is built with the curses library. It is similar to the conio
interface. The curses version of wcd has also an additional 'graphical' interface. It lets
the user select a directory via a full screen interactive directory tree browser. It has a
vim(1) like navigation and search method. It can be activated with option -g.

By using the -o option one can always fall back to the stdin/stdout interface.

OPTIONS


-a Add current path to the default treedata file.

Use this option to quickly add the current path to the default treedata file. Re-
scanning the complete disk can take a long time in some cases.

-aa Add current and all parent paths to the default treedata file.

-A PATH
Scan directory tree from PATH and append to the default treedata file. Examples:

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

On Windows one can scan all shared directories of a Windows LAN server by typing
something like: "wcd -A \\servername".

See also option -S and -s and -E.

-b Ban current path.

Wcd places the current path in the ban file. This means that wcd ignores all matches
of this directory and its sub directories.

The ban file can be edited with a text editor. Use of wildcards is supported and names
are matched against the absolute path.

Banned paths are not excluded from scanning the disk. To do that use option -xf.

-c, --direct-cd
Direct CD mode. By default wcd works as follows:

1. Try to find a match in the treedata file(s)
2. If no match, try to open the directory you typed.

In direct CD mode wcd works in reversed order.

1. Try to open the directory you typed.
2. If not, try to find a match in the treedata file(s).

-d DRIVE
Set drive for stack and go file (DOS only).

The stack file and the go-script are by default stored on drive C: if environment
variable HOME is not set. Use this option if drive C: is a read-only drive. This
option must be used in front of the stack options -, + and =.

-e Add current path to the extra treedata file.

Use this option to quickly add the current path to the extra treedata file.

-ee Add current and all parent paths to extra treedata file.

-E PATH
Scan directory tree from PATH and append to Extra treedata file. See also options -A
and -S.

-f FILE
Read treedata file FILE. Do not read the default treedata file.

+f FILE
Read treedata file FILE in addition to the default treedata file.

-g Graphical interface (only in version with curses interface).

Wcd starts a textual curses based 'graphical' interface. The user can select a
directory via a full-screen interactive directory tree browser. It has a vim(1) like
navigation and search method.

If no search string is given wcd presents the whole tree which is in the default
treedata file and the extra treedata files.

If a search string is given the match list is presented as a directory tree.

The default tree layout is similar to the tree layout of the original NCD on DOS. The
difference in layout is that in NCD all directories of a same depth level were
vertically aligned over the whole tree. This was possible in NCD, because the maximum
width of a directory name in DOS was 12 (8.3) characters. On modern operating systems
directory names can be very long, so also the differences in length can be large.
Therefore folders with a same depth are not vertically aligned over the whole tree in
wcd, but only in sub-branches. So there is some sideways movement when moving
straight up and down from one sub-branch to another sub-branch.

The navigation behaviour in Wcd is exactly the same as in the original NCD. For
instance if you push the Down key you go down to the next directory with the same
depth level, jumping over branches. This enables fast navigation through the tree.

See options -Ta, -TC, and -Tc to change the navigation behaviour.

-gd Dump the treedata files as a tree to stdout.

-G PATH
Write go-script in directory PATH. For instance on Unix, "wcd -G PATH" will write a
go-script PATH/wcd.go.

-GN, --no-go-script
Do not create go-script. This option can be used in combination with the option -j if
one does not want wcd to create a go-script.

-h, --help
Show help and exit.

-i, --ignore-case
Ignore case. Dos and Windows versions of wcd ignore case default. Unix/Cygwin
versions regard case by default.

+i, --no-ignore-case
Regard case. See also option -i.

-I, --ignore-diacritics
Ignore diacritics for Latin-based scripts. Letters with diacritical marks match their
base letter without diacritical mark. The following Latin encodings are supported:
CP437, CP850, CP852, CP1250, CP1252, ISO-8859-1, ISO-8859-2, and Unicode Latin-1,
Latin Extended-A, and Latin Extended-B. See also
<http://en.wikipedia.org/wiki/Diacritic>

+I, --no-ignore-diacritics
Regard diacritics (default). See also option -I.

-j, --just-go
Just go mode.

In this mode wcd will not present a list when there is more than one directory that
matches the given directory. Wcd will just change to the first option. When wcd is
invoked again with the same arguments it will change to the next option, and so on.

Wcd will print the directory to go to to stdout. So a different installation method
can be used. One could make the following function for a POSIX compatible shell:

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

When you are using an old shell that doesn't support "$()" command substitution you
have to use old style command substitution with back-quotes.

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

On Windows systems, if one is running 4NT shell, one could make the following alias:

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

This method eliminates the need of the go-script, so one can use option -GN in
combination with -j.

-k, --keep-paths
Keep paths.

Keep paths in the treedata file when wcd can't change to them. The default behaviour
of wcd is that it tries to remove paths from the treedata when wcd can't change to
them. With this option this behavior is turned off.

-K, --color
Use colors in graphical mode.

-l ALIAS
Name the current path with ALIAS. Wcd places the current path with alias ALIAS in the
alias file. Aliases are case sensitive.

-m DIR
Make directory and add to treedata file.

-L, --license
Print the distribution license.

-M DIR
Make directory and add to extra treedata file.

-n PATH
Read relative treedata file from PATH.

Do not read the default treedata file. The relative treedata file should already have
been created using the wcd +S option. PATH may also point to a file directly.

An example. Suppose another system has been mounted to mount point "/mnt/network":

wcd -n /mnt/network src

Wcd opens the relative treedata file in "/mnt/network/". The file contains the paths
relative from that point.

+n PATH
Read relative treedata file in addition to the default treedata file. See option -n.

-N, --numbers
Use numbers instead of letters.

Wcd with a conio or curses based interface (see section INTERFACE) presents a match
list by default numbered with letters. When the -N option is used the match list is
numbered with numbers. Regardless of the -N option one can type a letter or numbers to
make a selection from the list of matches.

-o Use stdin/stdout interface.

When for some kind of reason the conio or curses interface of wcd does not work one
can fall back to the stdin/stdout interface of wcd by using the -o option.

-od, --to-stdout
Dump all matches to stdout.

-q, --quiet
Quieter operation. Printing of the final match is suppressed.

-r DIR
Remove directory and remove from the treedata file.

If the directory is empty, wcd will remove it, and try to remove it from the treedata
file.

-rmtree DIR
Recursively remove directory and remove from the treedata file.

Wcd will remove the directory and all its sub directories and files, and remove the
directories from the treedata file.

-s (re)Scan disk from $HOME directory. If HOME is not defined the disk is scanned from
root directory /.

The existing default treedata file is overwritten.

The default scan directory can be overruled with environment variable "WCDSCAN". See
section ENVIRONMENT VARIABLES.

-S PATH
Scan directory tree from PATH and overwrite the default treedata file. See also
options -A, -s and -E. E.g. with option -A you can create a default treedata file of
your choice. Examples:

Unix:

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

DOS/Windows:

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

With the Windows versions one can scan all shared directories of a Windows LAN server
by typing something like: "wcd -S \\servername".

+S PATH
Scan disk from PATH and place relative paths in a relative treedata file. This file
is used by the -n and +n options of wcd. E.g. "wcd -n PATH src".

-t Do not strip tmp mount dir "/tmp_mnt" (Unix only)

Wcd strips by default "/tmp_mnt/" from the match. Directory "/tmp_mnt" is used by the
auto-mounter. This behaviour can be turned off with the -t option.

-T, --ascii-tree
Draw tree with ASCII characters. Use this option if line drawing characters are not
displayed properly in your terminal.

-Ta, --alt-tree-nav
Alternative way of navigation in the graphical tree.

In the default NCD style tree layout the -Ta option disables jumping to unrelated
directories.

In compact tree mode the alternative mode makes navigation similar to navigation in
GUI file managers such as Windows Explorer or Linux KDE Konqueror. Pressing Up and
Down moves the selected folder one line up or down. Pressing Left first folds the sub-
folders and the next move left moves really left.

You can switch on-the-fly between default and alternative navigation by pressing
<Shift-A>.

When alternative navigation mode is on, you will see an "A" in the lower right corner.

-TC, --center-tree
Centered view in the graphical tree. The selected directory stays in the middle of the
screen. The centered mode can also be switched on and off with key <t> in the
graphical tree.

The standard non-centered behaviour, which minimises tree movement, is the same as in
the original NCD.

-Tc, --compact-tree
By default the 'graphical' tree is drawn the same way as the original NCD on DOS did
it. On DOS a directory path could only be 66 characters in total. With the deep
directory structures of today the tree can become very wide. To overcome this wcd can
draw the tree in a compact way, similar to most GUI file managers, with only one
folder per line. Use option -Tc or switch on-the-fly with the <m> key.

-Td, --cjk-width
Legacy East-Asian CJK (Chinese, Japanese, and Korean) fonts have certain characters
and line drawing symbols with a column width of 2, while the normal Unicode width for
these characters is 1 column. For instance the Chinese CP936 raster font on Windows
and the Simsun font. Use this option for a correct outlining of the graphical tree
when a legacy CJK font is used.

When CJK mode is on, you will see a "C" in the lower right corner.

-u USER
Scan treedata file of another user based on USER, do not scan your own default
treedata file. See also section ENVIRONMENT VARIABLES for WCDUSERSHOME.

On Unix/Cygwin the base directory for user home directories is assumed to be "/home".
Wcd will look for "/home/USER/.treedata.wcd" and "/home/USER/.wcd/.treedata.wcd", in
that order, and read the first one that exists and is readable. On DOS/Windows the
base directory for user home directories is assumed to be "\\users", so wcd tries to
read "\\users\USER\treedata.wcd" and "\\users\USER\.wcd\treedata.wcd".

+u USER
Read default treedata file of USER in addition to your own treedata file.

-v, --verbose
Display verbose messages. With this option wcd prints all filters, bans and excludes.

-V, --version
Print version information and exit.

-w, --wild-match-only
Wild matching only. Treat all matches as wild matches.

-x PATH
Exclude PATH from scanning.

When this option is used wcd will exclude PATH and all its subdirectories when wcd is
scanning a disk. Wildcards are supported and matched against absolute paths. Option -x
can be used multiple times.

wcd -x <path1> -x <path2> -s

Option -x must be used in front of any scan option (-s, -S, +S, -A, -E).

On DOS/Windows systems one must specify the drive letter depending on if environment
variable HOME or WCDHOME is set. If HOME or WCDHOME is set one needs to specify the
drive letter. An example:

wcd -x c:/temp -S c:

Otherwise do not specify drive letter.

wcd -x /temp -s

-xf FILE
Exclude all paths listed in FILE from scanning.

When this option is used wcd will exclude all paths listed in FILE and all their
subdirectories when wcd is scanning a disk. Wildcards are supported and they are
matched against absolute paths; one path per line. Be aware that wcd will not ignore
leading or trailing blanks on a line, because they are legal characters in a directory
name. Option -xf can be used multiple times. When one wants to exclude all banned
paths from scanning one can do the following (example for wcd on unix):

wcd -xf ~/.ban.wcd -s

Wildcards are supported. For instance to exclude all your Subversion directories with
administrative files add a line with "*/.svn".

Option -xf must be used in front of any scan option (-s, -S, +S, -A, -E).

-y, --assume-yes
Assume Yes on all queries.

Wcd will not prompt the user with yes/no questions, but assumes the user answers yes
on all questions. This can be used in combination with option -rmtree. This option
must be used in front of options that can lead to yes/no questions.

-z NUMBER
Set maximum stack size to NUMBER.

The default size of the stack is 10. Stack operation can be turned off by setting the
size to 0. This option must be used in front of any other stack operations (-,+,=).
Otherwise the size of the stack will be set back to the default 10.

A correct command is:

wcd -z 50 -

The new stack size will be 50, wcd will go one directory back. A wrong command is:

wcd - -z 50

Wcd goes one directory back, the stack gets the default size 10. The -z 50 is ignored.

Add this option as the first option to your wcd alias or function. E.g. for the a
POSIX compatible shell this would be:

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

-[NUMBER]
Push dir NUMBER of times. Default is one.

Go back a directory. Command "wcd -" goes one directory back. To go more directories
back add a number to it. E.g. command "wcd -3". The stack is cyclic.

+[NUMBER]
Pop dir NUMBER of times. Default is one.

Go forward a directory. Command "wcd +" goes one directory forward. To go more
directories forward add a number to it. E.g. command "wcd +2". The stack is cyclic.

= Show stack.

Use this option if you do not know anymore how many times to push or pop. The stack
is printed and you can choose a number. The current place in the stack is marked with
an asterisk "*".

INSTALLATION


The current working directory of a Unix shell can only be changed by the builtin cd(1)
command. Therefore the program is always called by a function or an alias. The function or
alias sources a shell script (go-script) which is generated by the wcd program. Wcd can
only work after the function or alias is defined.

Another important influence on your installation is the definition of environment
variables HOME and WCDHOME. See section ENVIRONMENT VARIABLES.

Install for POSIX type shells
For a POSIX shell (ksh, bash, zsh, etc.) on Unix, Linux, Cygwin, or native MSYS add the
following function to the shell startup file (e.g. Bash uses "$HOME/.bashrc"):

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

Replace PATH with the location where the wcd executable has been installed. Reload the
shell initialization files or start new shell.

The location of the go-script "wcd.go" differs per shell.

Wcd for DJGPP DOS bash requires a different function. The go script is not written in a
directory "bin", and if WCDHOME and HOME are both not defined the go-script is written on
c:/.

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

The WinZsh version of wcd is also a bit different. No "bin" directory.

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

See section FILES for more information.

Install for C-alike shells (csh, tcsh)
Add the following alias to the shell startup file "$HOME/.cshrc" or "$HOME/.tcshrc" :

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

Replace PATH with the location where the wcd executable has been installed. Reload the
shell initialization files or start a new shell.

Windows Command Prompt version
Unpack the zip file and add directory "bin" to your environment variable PATH.

In Windows Command Prompt a Windows program cannot change the current work directory, but
a .bat file can. The batch scrip "wcd.bat" runs the wcd program which generates a new
batch script "wcdgo.bat". Then "wcd.bat" runs "wcdgo.bat" which actually changes the
directory.

Windows VISTA and higher
In a Windows VISTA and higher Command Prompt you may have limited access to directories.
To get access to more directories you need administrator rights. You can get a Command
Prompt with administrator rights if you right click on the Command Prompt icon and select
Run as administrator.

Windows PowerShell version
Add the following function to your PowerShell user profile. The location of this profile
is stored in the $profile variable. It is required that one of the environment variables
HOME or WCDHOME is defined.

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

Replace PATH with the location where the wcd executable has been installed. Start a new
PowerShell. Wcd for PowerShell supports only the file system provider. No other providers.

OS/2 Command Prompt version
In an OS/2 Command Prompt (cmd.exe) an OS/2-program can't change the current work
directory. That is why wcd generates a command script "wcdgo.cmd" which must be executed
in the current shell. The script "wcd.cmd" first executes "wcdos2.exe", which creates the
"wcdgo.cmd" script. Then "wcd.cmd" executes the "wcdgo.cmd" script.

LOCALIZATION


LANG
The primary language is selected with the environment variable LANG. The LANG variable
consists out of several parts. The first part is in small letters the language code.
The second one is optional and is the country code in capital letters, preceded with
an underscore. There is also an optional third part: character encoding, preceded with
a dot. A few examples for POSIX standard type shells:

export LANG=nl Dutch
export LANG=nl_NL Dutch, The Netherlands
export LANG=nl_BE Dutch, Belgium
export LANG=es_ES Spanish, Spain
export LANG=es_MX Spanish, Mexico
export LANG=en_US.iso88591 English, USA, Latin-1 encoding

For a complete list of language and country codes see the gettext(1) manual:
<http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes> On Unix
systems you can use to command locale(1) to get locale specific information.

LANGUAGE
With the LANGUAGE environment variable you can specify a priority list of languages,
separated by colons. Wcd gives preference to LANGUAGE over LANG. For instance, first
Dutch and then German: "LANGUAGE=nl:de". You have to first enable localization, by
setting LANG or LC_ALL to a value other than C, before you can use a language priority
list through the LANGUAGE variable. See also the gettext(1) manual:
<http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable>

If you select a language which is not available you will get the standard English
messages.

WCDLOCALEDIR
With the environment variable WCDLOCALEDIR the LOCALEDIR used during compilation and
installation of wcd can be overruled. LOCALEDIR is used by wcd with native language
support to find the language files. The GNU default value is
"/usr/local/share/locale". By typing "wcd -V" wcd will print the LOCALEDIR that is
used.

If you have installed wcd in a different directory than the default directory you may
need to set the environment variable WCDLOCALEDIR to point to the locale directory.

An example for Windows cmd:

set WCDLOCALEDIR=c:/my_prefix/share/locale

An example for a POSIX shell:

export WCDLOCALEDIR=$HOME/share/locale

LC_COLLATE
When there are multiple directory matches wcd presents a sorted list. The sorting
depends on the locale settings. If the environment LANG has been set the matches are
sorted like dictionaries or phone books are sorted in that language. For instance dots
and dashes are ignored, or letters e with and without accent are equal, or upper and
lower case is ignored.

The sorting gives preference to environment variable LC_COLLATE over LANG. If you make
LC_COLLATE equal to "C" or "POSIX", locale sorting is turned off. For instance if you
want Dutch language, but not Dutch sorting, you can do something like this:

export LANG=nl_NL
export LC_COLLATE=C

LC_CTYPE
With regard to character encoding Wcd will give preference to variable LC_CTYPE over
LANG. For instance to set character encoding to UTF-8 the following environment
setting can be done.

export LC_CTYPE=en_US.UTF-8

LC_ALL
All locale environment variables that start with LC_ are overruled by the environment
variable LC_ALL if it is defined. Wcd gives preference to LC_ALL over LC_COLLATE and
LC_CTYPE.

WINDOWS CODE PAGES
There are two groups of code pages: DOS code pages (OEM) and Windows code pages (ANSI).
The default encoding for Windows, when configured with Western regional settings, is ANSI
CP1252. Windows programs, for instance notepad, use this default system ANSI code page.
The Windows console uses by default an OEM code page (CP437 or CP850) for compatibility
with DOS programs. If you use a DOS version of wcd in a Windows console it will work,
because of the DOS code page. But the DOS version of wcd lacks support for long directory
names and network drives on Windows.

The Windows version of wcd is a native Windows program and will use the Windows system
ANSI code page. So on a Western regional Windows it will use code page CP1252 for
directory names and messages. In order to get consistent output, independent of the active
code page, all Windows versions of Wcd translate ANSI output to Unicode output in the
Command Prompt and PowerShell.

The console raster font only supports the original OEM code page installed with Windows,
so you have to change the console's font to true type Lucida Console to make Unicode (and
ANSI) letters appear correctly.

Non-Unicode versions of Wcd prior to version 5.2.0 use plain ANSI output. For these older
versions the code page of the console has to be made equal to the system code page
(changed to 1252) to make wcd for Windows work properly with special characters such as
accented characters or the Euro symbol.

The Windows system code page can be changed via the Control Panel regional options. The
Windows console code page is changed with the "chcp" command.

When you type "wcd -V", the actual character encoding used by wcd is shown. Type the
command "chcp" to display the active code page of the Windows console.

UNICODE
Wcd has optional support for Unicode. To see if wcd was built with Unicode support type
"wcd -V". If your terminal/console and font supports it, you should see the Euro symbol
and Chinese characters (meaning: "Chinese").

Wcd has been soft converted to Unicode. In its core wcd handles all data as a stream of
bytes. Only the lines printed to screen are on the fly converted to Unicode wide
characters. Wcd fully relies on libc functions and has no UTF-8 specific code. See also
<http://www.cl.cam.ac.uk/~mgk25/unicode.html>

Wcd has optional support for Unicode matching with normalisation. To find out whether Wcd
has normalisation support type "wcd -V". Wcd with Unicode normalization support will
match Unicode names based on compatible equivalence. Without Unicode normalization
support, names are matched when they are binary equivalent. See also
<http://en.wikipedia.org/wiki/Unicode_normalization>

UTF-8 on Unix/Linux

In order to view UTF-8 characters your console/terminal also needs to support UTF-8. The
xterm version that comes with XFree86 4.0 or higher includes UTF-8 support. To activate
it, start xterm(1) in a UTF-8 locale and use a font with iso10646-1 encoding, for instance
with

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

Modern distributions of GNU/Linux support UTF-8 by default. Other multi-byte character
encodings should also work, but that has not been tested.

Wcd assumes that the treedata files are encoded in the locale character encoding. There
are no Byte Order Marks written to treedata files.

UTF-16 on Windows

On Windows Unicode is supported in all versions of PowerShell, and in Windows Command
Prompt on Windows 7 (or higher). Unicode also works in Take Command or TCC/LE made by JP
Software, which can be used on older Windows versions (XP/Vista).

On Windows all the directory names on disk are encoded in UTF-16 Unicode. For non-Unicode
Windows programs the Unicode characters are translated to the default ANSI code page. For
characters that are not part of the regional setting this translation is not possible and
non-Unicode programs print a question mark or a wrong character instead.

Wcd with Unicode support will read the UTF-16 encoded directory names and converts them
internally to UTF-8. All treedata files are encoded in UTF-8 and not compatible with the
non-Unicode version of Wcd. Wcd will create a go-script encoded in UTF-8.

All versions of Windows PowerShell are able to run scripts encoded in UTF-8, provided
there is an UTF-8 BOM in the script.

Since Windows 7 it is possible in Windows Command Prompt to change directory with a batch
script to a directory with Unicode letters in the name. The directory name needs to be
encoded in UTF-8, and the batch script must not have a BOM. The active code page of the
Command Prompt needs to be set to 65001 (UTF-8) prior to the cd command. Wcd for Command
Prompt will create such a go script "wcdgo.bat". It first changes the code page to 65001,
then changes directory, and finally sets the code page back to the original code page.

You need to set the font to True Type Lucida Console (not raster font) when letters don't
appear correctly.

The non-Unicode Windows version of Wcd can read Unicode treedata files since version
5.2.0, provided there is a Byte Order Mark (BOM) in the file (see
<http://en.wikipedia.org/wiki/Byte_order_mark>), but it can't change to directories with
Unicode letters in the name that are not part of the default system ANSI code page. The
Unicode Windows version of wcd writes a BOM in the UTF-8 encoded treedata files since
version 5.2.0, which makes them also readable by notepad.

UTF-8 on Cygwin

Cygwin supports Unicode since version 1.7. The Cygwin layer takes care that the Windows
UTF-16 Unicode names are converted to UTF-8. So programs, like wcd, do not need to be
aware of this and can operate using UTF-8 encoding as on Unix/Linux. Set character
encoding to UTF-8 with the LANG or LC_CTYPE environment variable. You may need to rescan
your drives. You need to set the font to True Type Lucida Console (not raster font) if you
use the default Cygwin console.

The Cygwin version behaves exactly as the Unix version of wcd. There is no BOM written in
the treedata files, and it is assumed they are encoded in the Cygwin locale character
encoding.

Use wcd online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    oStorybook
    oStorybook
    oStorybook l'outil privil�gi� des
    �crivains. ATTENTION : voir sur
    http://ostorybook.tuxfamily.org/v5/
    --en_EN oStorybook the right tool for
    writers. WARNIN...
    Download oStorybook
  • 2
    Asuswrt-Merlin
    Asuswrt-Merlin
    Asuswrt-Merlin is a third party
    firmware for select Asus wireless
    routers. Based on the Asuswrt firmware
    developed by Asus, it brings tweaks, new
    features and ...
    Download Asuswrt-Merlin
  • 3
    Atom
    Atom
    Atom is a text editor that's
    modern, approachable and full-featured.
    It's also easily customizable- you
    can customize it to do anything and be
    able to ...
    Download Atom
  • 4
    Osu!
    Osu!
    Osu! is a simple rhythm game with a well
    thought out learning curve for players
    of all skill levels. One of the great
    aspects of Osu! is that it is
    community-dr...
    Download Osu!
  • 5
    LIBPNG: PNG reference library
    LIBPNG: PNG reference library
    Reference library for supporting the
    Portable Network Graphics (PNG) format.
    Audience: Developers. Programming
    Language: C. This is an application that
    can also...
    Download LIBPNG: PNG reference library
  • 6
    Metal detector based on  RP2040
    Metal detector based on RP2040
    Based on Raspberry Pi Pico board, this
    metal detector is included in pulse
    induction metal detectors category, with
    well known advantages and disadvantages.
    RP...
    Download Metal detector based on RP2040
  • More »

Linux commands

Ad