Apparix 06-314 review

by on

Apparix combines the properties of the cdargs utility and the CDPATH shell mechanism for fast navigation through the file system.

License: GPL (GNU General Public License)
File size: 213K
Developer: Stijn van Dongen
0 stars award from

Apparix combines the properties of the cdargs utility and the CDPATH shell mechanism for fast navigation through the file system.

Apparix is especially useful for visiting and documenting both often- and rarely-used locations. Apparix enables you to attach marks to locations and jump to those locations by loading the mark.

Marking, unmarking and jumping are simple operations that are performed in the current shell. By setting up convenient aliases for marking and jumping the file system can be navigated in a fast and intuitive manner.

This section contains some examples of the most common uses of apparix. OPTIONS contains a list of additional options available for pruning and squashing bookmarks.
NOTES features a brief discussion of the advantages of apparix over other approaches such as setting up aliases for often visited directories, using symlinks, CDPATH, or a combination of these. HISTORY explains the difference between cdargs and apparix.

Apparix works in a manner very similar to cdargs. One usually invokes apparix by using pre-defined aliases. Here they will be called bm for bookmark, portal for a CPPATH-style bookmark and to for initiating an apparition (aka jump) . These aliases are found below in the FILES section and can also be obtained by issuing
apparix --shell-examples

Apparix works by aliases for two reasons, necessity and convenience. When bookmarking, it is convenient to be able to do it with just a few keystrokes. When jumping, apparix cannot change the current directory in the current shell. It writes the result destination in a results file $HOME/.apparixresult - necessity. An alias or function with a conveniently short name such as to achieves the desired change of directory.

Suppose your user name is eez and your home directory is /home/eez. You often visit a directory called /home/eez/cvs/xyz/tfa/faq/zut/bar/foo. This is how to create and use a bookmark for foo

/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> bm foo
added: foo -> /home/eez/cvs/xyz/tfa/faq/zut/bar/foo
/home/eez/cvs/xyz/tfa/faq/zut/bar/foo> cd
/home/eez> to foo

Another scenario is where you have some directory that contains a largish number of subdirectories, all of which you would like to have bookmarked. If the subdirectories have distinctive names this can be achieved in one fell swoop by marking the parent directory as a portal.

This is identical to adding the parent directory to the CDPATH environment variable, except that apparix bookmarks are not part of the cd namespace. It is argued in NOTES that this is a good thing. Consider this.

/home/cvs/bagger/boemel/mcl/mcl/src> ls
alien/ CVS/ impala/ README shmcx/
attic/ giraffe/ lib/ shcl/ shmx/
contrib/ gmon.out Makefile mcl/ shmcl/ taurus/

Some of the subdirectories have not-so-distinct names such as contrib and attic, but they happen to be the directories least visited. Issuing

/home/cvs/bagger/boemel/mcl/mcl/src> portal
[apparix] expanded 1 portal to 12 destinations

yields all of the subdirectories as destinations bookmarked by the last component of their path name. Note that bookmarks resulting from portal expansion are kept in a separate resource file (see FILES). Portal expansions can be recreated by issuing
apparix --rehash

This is useful to reflect a change in the directory naming structure underneath a portal.

Conflict resolution

Apparix allows identical bookmarks to point to different locations. When asked to visit such a bookmark it will present a list of options.

Subdirectory specification

When jumping (apparating) you can specify an additional subdirectory after the bookmark. Apparix will append the subdirectory to the destination. This does require you know the exact name of the subdirectory you want to visit.

What's New in This Release:
Another bugfix release, as the pivotal mechanism of adding bookmarks was sadly broken in the last two releases.

Apparix 06-314 keywords