A friendlier find(1).
friendly-findis the friendly file finder.
It's meant to be a more usable replacement for find(1). If you've used ack, then ffind is to find as ack is to grep.
Currently it's still in a prototype stage. Most things work, with the following notable exceptions:
Feedback is welcome, though remember that it's still a prototype, and is opinionated software.
If you're on OS X you can use Homebrew:
brew install ffind
Or you can install manually:
ffindto your computer somehow.
There's a half-assed man page generated from
ffind --helpis probably easier to read.
Usage: ffind [options] PATTERN
Options: -h, --help show this help message and exit --version print the version and exit -d DIR, --dir=DIR root the search in DIR (default .) -D N, --depth=N search at most N directories deep (default 25) -f, --follow follow symlinked directories and search their contents -F, --no-follow don't follow symlinked directories (default) -0, --print0 separate matches with a null byte in output -l, --literal force literal search, even if it looks like a regex -v, --invert invert match -e, --entire match PATTERN against the entire path string -E, --non-entire match PATTERN against only the filenames (default) -p, --full-path print the file's full path -P, --relative-path print the file's relative path (default)
Configuring Case Sensitivity: -s, --case-sensitive case sensitive matching (default) -i, --case-insensitive case insensitive matching -S, --case-smart smart case matching (sensitive if any uppercase chars are in the pattern, insensitive otherwise)
Configuring Ignoring: -b, --binary allow binary files (default) -B, --no-binary ignore binary files -r, --restricted restricted search (skip VCS directories, parse all ignore files) (default) -q, --semi-restricted semi-restricted search (don't parse VCS ignore files, but still skip VCS directories and parse .ffignore) -u, --unrestricted unrestricted search (don't parse ignore files, but still skip VCS directories) -a, --all don't ignore anything (ALL files can match) -I PATTERN, --ignore=PATTERN add a pattern to be ignored (can be given multiple times)
Size Filtering: Sizes can be given as a number followed by a prefix. Some examples: 1k, 5kb, 1.5gb, 2g, 1024b
--larger-than=SIZE match files larger than SIZE (inclusive) --smaller-than=SIZE match files smaller than SIZE (inclusive)
Type Filtering: Possible types are a (all), f (files), d (dirs), r (real), s (symlinked), e (real files), c (real dirs), x (symlinked files), y (symlinked dirs). If multiple types are given they will be unioned together: --type 'es' would match real files and all symlinks.
-t TYPE(S), --type=TYPE(S) match only specific types of things (files, dirs, non- symlinks, symlinks)
.ffignorefile is a file containing lines with patterns to ignore, with a few exceptions:
#are comments and are skipped. There can be whitespace before the
syntax: (literal|regex)change the mode of the lines following them, much like Mercurial's ignore file format. The default is regex mode.
All patterns are unrooted, and search the full path from the directory you're searching in. Use a regex with
^if you want to root them.
Copyright 2016 Steve Losh and contributors.
Licensed under version 3 of the GPL.
Remember that you can use GPL'ed software through their command line interfaces without any license-related restrictions.
ffind's command line interface is the only stable one, so it's the only one you should ever be using anyway. The license doesn't affect you unless you're: