Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
wcd(1)				  2023-04-23				wcd(1)

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.

   Console resizing on Windows
       Wcd supports console resizing in	Windows	10 console and ConEmu (see
       <https://conemu.github.io/>) since version 6.0.3. The Windows 10
       console must not	be in legacy mode (check the console's properties).
       The screen may not refresh when the console Layout property "Wrap text
       output on resize" is disabled. The screen can be	refreshed manually by
       pressing	the F5 key.

   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.

       -ls Show	the name of the	alias file, and	list all the aliases.

       -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 Interfaces)
	   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 and OS/2	bash require 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:/.

       DOS bash:

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

       OS/2 bash:

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

       The  WinZsh  version  of	wcd requires a bit different function. The go-
       script will never be written in c:/.

	   wcd ()
	   {
	       PATH/wcdwin32zsh.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  script  "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.

FILES
       If the environment variable WCDHOME is set wcd will use WCDHOME instead
       of HOME.	All "*.wcd" files are text files. They can be  edited  with  a
       text  editor.  The Windows Command Prompt version of wcd	behaves	as the
       DOS version. The	Cygwin version of wcd behaves as the Unix version.

       wcd.exe
	   The program.	In Unix	shells the  program  is	 always	 called	 by  a
	   function  or	alias, because the current working directory of	a Unix
	   shell can only be changed by	 the  builtin  cd  command.  See  also
	   section INSTALLATION.

       default treedata	file
	   This	 is  the default treedata file where wcd searches for matches.
	   If it is not	readable wcd will create a new one.

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

       extra treedata file
	   An optional extra treedata file. If it exists and is	 readable  wcd
	   will	try to find matches in this file also.

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

       ban file
	   In  this  optional  file  wcd  places  banned paths.	See option -b.
	   Wildcards are supported.

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

       alias file
	   Optional file with wcd aliases. See option -l.

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

       stack file
	   In this file	wcd stores its stack. The drive	letter can be  changed
	   with	the -d option.

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

	   The name of the stack file can be changed with environment variable
	   WCDSTACKFILE.  See section ENVIRONMENT VARIABLES.

       go-script
	   This	 is  the  shell	 script	which wcd.exe creates each time. It is
	   sourced via a function or an	alias. The drive letter	can be changed
	   with	the -d option.	For history reasons it is placed by default in
	   "$HOME/bin" on Unix systems.	The directory  of  this	 file  can  be
	   changed with	the option -G.

	       DOS bash: c:/wcd.go or $HOME/wcd.go
	       Windows Command Prompt: c:\wcdgo.bat or %HOME%\wcdgo.bat
	       Windows PowerShell: $env:HOME\wcdgo.ps1
	       WinZsh: $HOME/wcd.go
	       Cygwin/MSYS: $HOME/bin/wcd.go
	       OS/2 Command Prompt: c:\wcdgo.cmd or %HOME%\wcdgo.cmd
	       OS/2 bash: c:/wcd.go or $HOME/wcd.go
	       Unix: $HOME/bin/wcd.go

       relative	treedata file
	   Text	file with relative paths from DIR. See options +S, -n and +n.

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

ENVIRONMENT VARIABLES
       HOME
	   Wcd uses by default environment variable HOME to determine where to
	   store its files. See	also section FILES. This can be	overruled with
	   environment variable	WCDHOME.

	   HOME	 also  defines where to	start scanning the disk	when option -s
	   is used. This  can  be  overruled  with  the	 environment  variable
	   WCDSCAN.

	   For	the  Unix, Cygwin, Windows PowerShell, WinZsh and MSYS version
	   it is required that HOME or WCDHOME is set. For the other  versions
	   of wcd the use of these variables is	optional.

	   If  HOME  is	 set  on  DOS/Windows,	wcd  will  place all its files
	   (treedata.wcd, extra.wcd, alias.wcd,	ban.wcd, wcd.go) in  directory
	   HOME.  The  behaviour  of  wcd is then equal	to the Unix version of
	   wcd.	Wcd will scan the disk default from HOME. Drives will  not  be
	   automatically  scanned  by  changing	 to them. You need to tell wcd
	   explicitly. E.g.:

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

	   Matching of directories is now global over all scanned drives.

       WCDHOME
	   Environment variable	WCDHOME	can be used to change the location  of
	   wcd's files.	If both	HOME and WCDHOME are set, WCDHOME will be used
	   instead of HOME.

	   In  wcd  versions  prior  to	5.1.5 WCDHOME also changed the default
	   scan	directory.  This has changed. Since version 5.1.5 WCDHOME does
	   not change the default scan directory. See option -s. From  version
	   5.1.5,  use	environment  WCDSCAN  to  overrule  the	 default  scan
	   directory.

	   Example for DOS, Windows, OS/2 Command Prompt:

	       set WCDHOME=C:\Users\erwin\wcd

	   An example for POSIX	type shells:

	       export WCDHOME="$HOME/.wcd"

	   An example for Csh type shells:

	       setenv WCDHOME "$HOME/.wcd"

       WCDSCAN
	   Use environment variable  WCDSCAN  to  overrule  the	 default  scan
	   directory HOME. Define a colon separated list (Unix)	to define more
	   than	 one  directory.   On  DOS/Windows  make  the  list semi-colon
	   separated.

	   Examples for	DOS, Windows, OS/2 Command Prompt:

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

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

	   An example for POSIX	type shells:

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

	   An example for Csh type shells:

	       setenv WCDSCAN "$HOME:/projectdisk/projectX"

       WCDFILTER
	   Specify  filters   with   environment   variable   WCDFILTER.   All
	   directories that do not match the filter(s) are ignored. A list can
	   be  specified  by  separating  filters by the shell path separator.
	   Similar as specifying the PATH variable.  The case  sensitivity  is
	   mandated by the Operating system.

	   An example for DOS, Windows,	OS/2 Command Prompt:

	       set WCDFILTER=projects;doc

	   An example for POSIX	type shells:

	       export WCDFILTER="projects:doc"

	   An example for Csh type shells:

	       setenv WCDFILTER	"projects:doc"

       WCDBAN
	   The	paths specified	with environment WCDBAN	will be	banned by wcd.
	   See also option -b. Specify a list of paths separated by shell PATH
	   separator.

       WCDEXCLUDE
	   The paths specified with environment	WCDEXCLUDE will	be excluded by
	   wcd.	See also options -x and	-xf. Specify a list of paths separated
	   by shell PATH separator.

	   An example for DOS, Windows,	OS/2 Command Prompt:

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

	   An example for POSIX	type shells:

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

	   An example for Csh type shells:

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

       WCDUSERSHOME
	   Set the base	 of  user's  home  directories.	  On  DOS/Windows  the
	   default  value  is  "\\users".  On Unix/Cygwin the default value is
	   "/home".  This variable is used to scan  treedata  files  of	 other
	   users.  See	also options -u	and +u.	In verbose mode	wcd will print
	   all filters,	bans and excludes. See option -v.

       WCDSTACKFILE
	   Wcd gives preference	to WCDSTACKFILE	over the  default  stack  file
	   name	 (see  section	FILES).	With this variable each	shell (or used
	   terminal emulator) can have its private stack of used directories.

	   To use a unique time	based YYYYMMDD-HHMMSS  file  for  each	opened
	   interactive shell.

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

	   For	a  stack  per  xterm(1),  use  the  xterm WINDOWID environment
	   variable:

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

	   For GNU screen(1), to use stack per screen:

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

       TERMINFO
	   If the environment variable TERMINFO	is defined, wcd	 with  ncurses
	   interface checks for	a local	terminal definition before checking in
	   the	standard place.	This is	useful if terminal definitions are not
	   on	a   standard   place.	Often	used   standard	  places   are
	   "/usr/lib/terminfo" and "/usr/share/terminfo".

       PDC_RESTORE_SCREEN
	   Wcd	with  PDCurses	interface  recognizes the environment variable
	   PDC_RESTORE_SCREEN. If this environment variable is	set,  PDCurses
	   will	take a copy of the contents of the screen at the time that wcd
	   is  started;	 when  wcd  exits,  the	 screen	 will be restored.  An
	   example for Windows Command Prompt:

	       set PDC_RESTORE_SCREEN=1

	   Windows allows only a small buffer to be saved. So it is not	always
	   possible to restore everything. Some	garbage	data may be printed in
	   the console after wcd exits if you have set a large buffer width.

       SHELL
	   Printing of "#!$SHELL" on the first line of the go-script for POSIX
	   type	shell or C shell is needed for 8 bit characters.  Some	shells
	   otherwise  think  that  the go-script is a binary file and will not
	   source it. In Cygwin	 Bash  the  variable  SHELL  must  be  set  in
	   environment	using  the  "export" command, otherwise	wcd can't read
	   the variable.

       BASH
	   Wcd for DOS bash uses  $BASH	 instead  of  $SHELL,  because	$SHELL
	   points  to the DOS command shell. One may need to define $BASH with
	   an "export" command,	otherwise wcd can't read the variable.

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

AUTHORS
       Wcd was written by Erwin	Waterlander <waterlan@xs4all.nl>

       Project homepage: <http://waterlan.home.xs4all.nl/>

       SourceForge: <http://sourceforge.net/projects/wcd/>

       The   manual   page   formatting	  was	provided   by	 Jari	 Aalto
       <jari.aalto@cante.net>.

       NCD was originally written by Brad Kingsbury for	Peter Norton's "Norton
       Utilities"	    around	     1987.	     See	  also
       <http://www.softpanorama.org/OFM/norton_change_directory_clones.shtml>

wcd				  2023-04-23				wcd(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=wcd&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help