FTWHICH(1)
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)