ftff - fault tolerant file find utility
ftff [-#fFhIpq][-t#][start_directory] file_to_find
ftff recursively descends the directory hierarchy and reports all
objects in the file system with a name that approximately matches the
ftff 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.
ftff behaves like
’find start_directory -name file_to_find -print’
with the following differences:
- ftff is fault tolerant
- ftff is NOT case sensitive
- the level of fault tolerance can be adjusted by specifying the
optional parameter tolerance. A tolerance of 0 specifies exact
-h Prints a little help/usage information.
-f Follow symbolic links on directories. Note: a symbolic link like
"somewhere -> .." causes naturally an endless loop. By default
ftff does not follow symbolic links to directories.
-F Classify the file type by appending a character to each file
name. This character is:
* for regular files that are executable
/ for directories
@ for symbolic links
| for FIFOs
= for sockets
-p print the actual distance value in front of the filename. This
value is equal to the number of insertions, deletions and
replacements necessary to transform the file that was found into
the search key (the file_to_find).
-q keep quiet and do not print any warning about non readable
-# 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
-I Do case sensitive search (default is case in-sensitive)
The filename to search for. ’*’ and ’?’ can be used as
’?’ denotes one single character.
’*’ denotes an arbitrary number of characters.
The directory to start the search. The current directory is the
The last argument to ftff is not parsed for options as the program
needs at least one file-name argument. This means that ftff -x will not
complain about a wrong option but search for the file named -x.
This will e.g. find a file called something or sameting or sum-thing or
To find all files that start with any prefix, have something like
IOComm in between and end on a two letter suffix:
To find all files that exactly start with the prefix DuPeg:
ftff -0 ’dupeg*’
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 file that has these characters in its
Guido Socher (email@example.com)