Info: An utility to search files recursively on a dir.
Author: Jaime Buelta
It allows quick and easy recursive search for files in the Unix command line.

Basically, replaces find . -name '*FILE_PATTERN*' with ffind.py FILE_PATTERN (and a few more niceties)
.) by default.gitignore or RCS/. Typically not needed as hidden
are ignored by default.Common uses:
ffind txt to return all text files in current dirffind ../other_dir txt to return all text files under dir ../otherdir (or `ffind.py txt -d ../otherdir`)Requires pip, the tool for installing Python packages.
pip install ffind
usage: ffind.py [-h] [-p] [--nocolor] [--nosymlinks] [--hidden] [-c] [-i]
[--delete | --exec "command" | --module "module_name args" | --command "program"]
[--ignore-vcs] [-f] [--version]
[dir] filepattern
Search file name in directory tree
positional arguments:
dir Directory to search
filepattern
optional arguments:
-h, --help show this help message and exit
-p Match whole path, not only name of files. Set env
variable FFIND_SEARCH_PATH to set this automatically
--nocolor Do not display color. Set env variable FFIND_NO_COLOR
to set this automatically
--nosymlinks Do not follow symlinks (following symlinks can lead to
infinite recursion) Set env variable FFIND_NO_SYMLINK
to set this automatically
--hidden Do not ignore hidden directories and files. Set env
variable FFIND_SEARCH_HIDDEN to set this automatically
-c Force case sensitive. By default, all lowercase
patterns are case insensitive. Set env variable
FFIND_CASE_SENSITIVE to set this automatically
-i Force case insensitive. This allows case insensitive
for patterns with uppercase. If both -i and -c are
set, the search will be case sensitive.Set env
variable FFIND_CASE_INSENSITIVE to set this
automatically
--delete Delete files found
--exec "command" Execute the given command with the file found as
argument. The string '{}' will be replaced with the
current file name being processed. If this option is
used, ffind will return a status code of 0 if all the
executions return 0, and 1 otherwise
--module "module_name args"
Execute the given module with the file found as
argument. The string '{}' will be replaced with the
current file name being processed. If this option is
used, ffind will return a status code of 0 if all the
executions return 0, and 1 otherwise. Only SystemExit
is caught
--command "program" Execute the given python program with the file found
placed in local variable 'filename'. If this option is
used, ffind will return a status code of 1 if any
exceptions occur, and 0 otherwise. SystemExit is not
caught
--ignore-vcs Ignore version control system files and directories.
Set env variable FFIND_IGNORE_VCS to set this
automatically
-f Experimental fuzzy search. Increases the matches, use
with care. Combining it with regex may give crazy
results
--return-results For testing purposes only. Please ignore
--version show program's version number and exit
Setting these environment variables, you'll set options by default. For example:
export FFIND_CASE_SENSITIVE=1
# equivalent to ffind -c something
ffind something
FFIND_CASE_SENSITIVE=1 ffind something
-c flag-i flag.--hidden flag.-p flag.--ignore-vcs--nosymlinks flag.--nocolor flag.-f flag.If an environment variable is present, when calling ffind -h, the option will display [SET] at the end.
From the source code directory
python setup.py install
It requires to install cram (it can be installed with pip install cram)
To run all the tests, run make test. This runs the tests on both Python 2 and Python 3. Running just
make runs the test for Python 3.
The tests are under the tests directory, more tests are welcome.