


NCD(1)							   NCD(1)


NAME
       ncd - Ninux Change Directory: browse & select directories


SYNOPSIS
       ncd [ -options ]	 [ directory ]


DESCRIPTION
       ncd  is	an  interactive fullscreen directory browser that
       lets you select and change to the  desired  directory.  It
       also  lets you change quickly in non-interactive mode to a
       directory selected in  the  command  line.   ncd	 supports
       incomplete  directory  specification  in the command line,
       and is able to perform automatic search in browser mode.

       If you provide a directory name in the command  line,  ncd
       will  run  in non-interactive mode, and will try to change
       to the next directory that matches completely or partially
       the specified one.

       If you don't provide a directory name in the command line,
       ncd will run in interactive mode. You can  browse  up  and
       down  the  directory  tree,  search  for	 a directory, and
       accept or cancel the selection of a  directory  to  change
       to.

       To  get	a  faster  response,  ncd  keeps a directory tree
       database in the user's home directory (obtained from $HOME
       environment variable). The database actually consists on a
       couple of files: .ncd_htree, that keeps the directory tree
       starting from the user home directory, and .ncd_ftree that
       keeps the full system directory tree,  starting	from  the
       root  directory	/.  All the home tree stored somewhere in
       the full tree file .ncd_ftree  is  discarded,  and  it  is
       recreated based on the home tree read from .ncd_htree.  In
       this way, the user can add/delete  directories  below  his
       home  directory	and  rebuild  just  the	 home .ncd_htree.
       database, avoiding to rebuild the long .ncd_free full sys-
       tem tree.

       The program can run in two scope modes: home-scope mode or
       full-scope mode.	 In home-scope mode, only the home direc-
       tory tree is available, and the program has no view of any
       directory external to this local tree. In full-scope mode,
       the full system tree starting from / is available for view
       and search operations. Normally the mode is  automatically
       selected based on the current work directory at invocation
       time: home-scope mode is selected if the current directory
       is located under the home directory. Otherwise, full-scope
       is selected. This behaviour can be overriden using command
       line  options.  If  you specify a directory in the command
       line (non-interactive mode) you	can  easily  force  full-
       scope  mode  starting  the  directory name with a slash /.



ncd			   20 May 1995				1





NCD(1)							   NCD(1)


       This does not mean that the directory must hang	from  the
       root  directory;	 to  do this, add two slashes, except for
       root directory selection, that just needs one slash.

       If the current work directory at invocation  time  is  not
       registered  in  the  program  database files, the database
       (home or full depending on scope	 mode)	is  automatically
       rebuilt. This can be overriden using command line options.


COMMAND LINE OPTIONS
       You can supply command line options to customize some  ncd
       actions.	 Options  can  be grouped behind a single -.  You
       can also specify default options in the NCD_OPTS	 environ-
       ment  variable,	using  the  same sintax as in the command
       line. Command line options override NCD_OPTS options.

       This is a list of the supported command line options:

       -f     select  full-scope  mode	(starting  from	 /).   On
	      rebuild,	 both	.ncd_ftree   and  .ncd_htree  are
	      rebuilt.

       -h     select home-scope mode (starting from  $HOME).   On
	      rebuild, only .ncd_htree is rebuilt.

       -H     select automatic-scope mode. This will choose full-
	      scope or home-scope depending on the current  work-
	      ing  directory  at  invocation  time.   This is the
	      default scope mode.

       -r     force  rebuilding	 the  database	(home  or   full,
	      depending on the scope mode).

       -R     disable  the database forced rebuild.  This cancels
	      any previous -r, but does not cancel  an	automatic
	      rebuild (use -A to cancel that one).

       -a     select  automatic	 rebuild  mode.	  if  the current
	      working directory at invocation time is not in  the
	      program  database,  a rebuild is performed (home or
	      full, depending on the scope mode).   This  is  the
	      default auto-rebuild mode.

       -A     disable automatic rebuild mode.

       -v     Verbose  on.  Usefull  for debug purposes or if you
	      get bored while rebuilding the full tree.

       -V     Verbose off. This is the default verbose mode.

       -d     dumps directory tree. This will make a nice listing
	      of  the  directory  tree	to  stdout (home or full,
	      depending on the scope). Just usefull to export the



ncd			   20 May 1995				2





NCD(1)							   NCD(1)


	      directory	 tree  to  a text file.	 The program will
	      exit inmediately after the  listing,  returning  an
	      error  code (not 0), it will not perform any change
	      directory operation.

       -D     Cancels any previous -d.

       -t     Force text-chars display of the directory tree.  If
	      not  forced,  curses  line-art characters are used.
	      Curses chars are	nice  on  terminals  that  suport
	      line-art characters (as the linux console), but you
	      get an ugly view on other terminal  types.  If  you
	      use -t, you get a bit better display.

       -T     cancels  any previous -t and also cancels automatic
	      line-art/text-char select ( -x ).	 So  this  forces
	      curses chars display.

       -x     selects  automatically  line-art/text-chars display
	      of the directory tree.  This is the default.

       -l     View expanded links ( ldir -> dir/ )

       -L     View  compacted  links  (	 ldir@	).  This  is  the
	      default.

       -? -i  Shows a summary of command line options.


BROWSER KEYS
       When invoqued in interactive mode, these are the character
       sequences and keys to use the browser.


       KeyDown or Ctrl+N:
	      Move down (next brother).

       KeyUp or Ctrl+P:
	      Move up (previous brother).

       KeyLeft or Ctrl+B:
	      Move left (father).

       KeyRight or Ctrl+F:
	      Move right (son).

       KeyHome or Ctrl+A:
	      Move to first directory in tree ( $HOME or / ).

       KeyEnd or Ctrl+E:
	      Move to last descendant of current node.

       KeyPgUp or Ctrl+U:
	      Move one page up.



ncd			   20 May 1995				3





NCD(1)							   NCD(1)


       KeyPgDn or Ctrl+V:
	      Move one page down.

       KeyF7 or Ctrl+O:
	      Last directory of previous line.

       KeyF8 or Ctrl+J:
	      First directory of next line.

       Ctrl+T:
	      Opposite	movement  of  KeyRight.	  This	 is   not
	      KeyLeft.	 Keyleft  moves back to the father direc-
	      tory.

       KeyText (any text key or displayable character):
	      Adds the character to the search string. As you add
	      chars,  the program will try to match the resulting
	      string to a directory in the tree. If no	match  is
	      possible,	 the  character is rejected. The match is
	      partial, so it is not necessary  to  type	 a  whole
	      directory	 name to match it. If you want to force a
	      total match, add a final	slash  /  to  the  search
	      string.  After you add a slash you can go on adding
	      chars, so actually the search is not limited  to	a
	      simple  directory	 name,	but  can  also search for
	      paths.

       KeyF9 or Ctrl+K:
	      Move to next directory  that  matches  the  current
	      search field.

       Backspace or Ctrl+H:
	      Delete last character from the search field.

       Del or Ctrl+D:
	      Clears completely the search field.

       KeyF5 or Ctrl+L:
	      If  the  current	selection is a link, follow it to
	      the destination directory.

       KeyF6 or Ctrl+G:
	      Toggles between viewing expanded links  (	 ldir  ->
	      dir/  )  and compacted links ( ldir@ ). The initial
	      mode is command line selected using -l and -L.  The
	      default mode is to show compacted links.

       KeyF4 or Ctrl+W:
	      Repaint  the  full screen. Use this when some back-
	      ground process disturbs your display, or some other
	      user tries to write(1) or talk(1) to you.

       KeyF2 or Ctrl+R:
	      Performs	a  directory  tree  rescan. The directory



ncd			   20 May 1995				4





NCD(1)							   NCD(1)


	      database is rebuilt (home or full, depending on the
	      scope mode).

       KeyF3 or Ctrl+Y:
	      Toggle the scope mode, between home and full scope.

       Return or Enter or Ctrl+M:
	      Accepts the directory selected, and exits	 changing
	      the current working directory to it.

       KeyF10 or Esc or Ctrl+X or Meta+X:
	      Quit. Cancels directory selection.

       KeyF1 or Ctrl+I:
	      Displays a little help screen.


SHELL ALIAS/FUNCTION
       ncd  is actually an executable binary and a shell alias or
       function that calls it; in this way,  we	 can  change  the
       working	directory  of the current shell. The return value
       of the binary executable is 0 if the user has  selected	a
       valid  directory.  On  error  or if the operation has been
       cancelled, the program returns a	 value	different  to  0.
       The   destination   directory  is  returned  in	the  file
       $HOME/ncd_sdir allows blind changing to the directory kept
       in  $HOME/ncd_sdir without testing the return value of the
       program.

       Assuming that the  binary  program  is  /usr/bin/ncd,  the
       shell alias/function should be the following,

       for the bash shell, define this function:

	     function ncd()
	     {
		/usr/bin/ncd $*;
		if [ $? = 0 ]; then
		   cd "$(cat $HOME/.ncd_sdir)";
		fi
	     }

       for  the	 tcsh shell, define this alias (here shown in two
       lines; actually it's just one line):

	  alias ncd '/usr/bin/ncd * ;
		     if $? == 0 cd "`cat $HOME/.ncd_sdir`" '

       You can include this alias/function in your login  script,
       or in the system wide login script. See bash(1) or tcsh(1)
       manpages for help on this.






ncd			   20 May 1995				5





NCD(1)							   NCD(1)


ENVIRONMENT
       NCD_OPTS
	      You can specify default options in this environment
	      variable,	 using	the same sintax as in the command
	      line. Command line options override  NCD_OPTS  val-
	      ues.


FILES
       $HOME/.ncd_htree home tree database.

       $HOME/.ncd_ftree full tree database.

       $HOME/.ncd_sdir directory selected in last execution.


AUTHOR
	 Borja Etxebarria <borja@bips.bi.ehu.es>
			  <jtbecgob@s835cc.bi.ehu.es>


BUGS
       Sure a lot.

       Please,	report	any  bug  or  improvement  to  the author
       Include a complete, self-contained example that will allow
       the bug to be reproduced, and say which version of ncd you
       are using.


COPYRIGHT
       Copyright (C) 1995, Borja Etxebarria
			   Basque Country University

       This program is free software;  you  can	 redistribute  it
       and/or modify it under the terms of the GNU General Public
       License as published by the Free Software Foundation.

       This program is distributed in the hope that  it	 will  be
       useful, but WITHOUT ANY WARRANTY; without even the implied
       warranty of MERCHANTABILITY or FITNESS  FOR  A  PARTICULAR
       PURPOSE.	  See  the  GNU	 General  Public License for more
       details.

       You should have received a copy of the GNU General  Public
       License along with this program; if not, write to the Free
       Software Foundation, Inc., 675  Mass  Ave,  Cambridge,  MA
       02139, USA.


SEE ALSO
       bash(1), tcsh(1)





ncd			   20 May 1995				6


