NAME¶
ftwhich - fault tolerant search for a command name
SYNOPSIS¶
ftwhich [-#hIp][-t#] program_name
DESCRIPTION¶
ftwhich is a fault tolerant version of the
which(1) command.
ftwhich searches for a given program in all directories included in
your PATH environment variable and reports all files with a name that
approximately matches the given
program_name.
ftwhich achieves fault tolerance by calculating the so called Weighted
Levenshtein Distance. The Levenshtein Distance is defined as the minimum
number of character insertions, deletions and replacements that transform a
string
A into a string
B.
ftwhich is similar to the
which command with the following
differences:
- -
- ftwhich is by default NOT case sensitive
- -
- ftwhich is fault tolerant
- -
- Some shells have a build in which command that will
also search aliases. ftwhich can naturally not search for aliases
as it does not know about alias definitions.
- -
- ftwhich lists all files that approximately match.
The files first shown take preference over files of the same name printed
later as they are from directories listed earlier in the PATH.
- -
- The level of fault tolerance can be adjusted by specifying
the optional parameter tolerance. A tolerance of 0 specifies
exact match.
OPTIONS¶
- -h
- Prints help/usage information.
- -I
- Do case sensitive search (default is case
in-sensitive)
- -p
- print the actual distance value in front of the found
filename. This value is equal to the number of insertions, deletions and
replacements necessary to transform the name of the found program into the
search key.
- -# or -t#
- Set the fault tolerance level to #. The fault tolerance
level is an integer in the range 0-255. It specifies the maximum number of
errors permitted in finding the approximate match. The default tolerance
is (strlen(searchpattern) - number of wildcards)/6 + 1
- program_name
- The program file to search for. '*' and '?' can be used as
wildcards.
'?' denotes one single character.
'*' denotes an arbitrary number of characters.
The last argument to ftwhich is not parsed for options as the program needs at
least one program_name argument. This means that
ftwhich -x will not
complain about a wrong option but search for the program named -x.
EXAMPLE¶
Search for all programs like gcc in your PATH:
ftwhich gcc
This will e.g. find gcc or cc or CC ...
To find all files that start with any prefix and end in
config and differ
in 2 letters from the word
config:
ftwhich -2 '*config'
To find all files that exactly start with the prefix
if:
ftwhich -0 'if*'
To find all clock programs:
ftwhich -0 '*clock*'
BUGS¶
The wildcards
'?' and
'*' can not be escaped. These characters
function always as wildcards. This is however not a big problem since there is
normally hardly any command that has these characters in its name.
AUTHOR¶
Guido Socher (guido@linuxfocus.org)
SEE ALSO¶
whichman(1),
ftff(1)