Man Linux: Main Page and Category List


       ftwhich - fault tolerant search for a command name


       ftwhich [-#hIp][-t#] program_name


       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


       -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

              The  program  file  to  search for.  ’*’ and ’?’  can be used as
              ’?’  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


       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*


       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


       Guido Socher (


       whichman(1), ftff(1)