ffind(1)
NAME
ffindcmd, ffind - find files by name or by other characteristics in FSP
database
SYNOPSIS
ffindcmd pathname-list expression ffind pathname-list expression
DESCRIPTION
ffindcmd recursively descends the directory hierarchy for each pathname
in the pathname-list, seeking files that match a logical expression
written using the operators listed below.
USAGE
- Operators
- In the descriptions, the argument n is used as a decimal integer where +n means more than n, -n means less than n, and n means exactly n. All three maybe used if an integer argument is needed.
- -name filename True if the filename argument matches the current file
name. Shell argument syntax can be used if escaped (watch out for [, ? and *).
- -prune Always yields true. Has the side effect of pruning the
- search tree at the file. That is, if the current path name is a directory, ffindcmd will not descend into that directory.
- -type c True if the type of the file is c, where c is one of:
d for directory
f for plain file- -size n True if the file is n blocks long (512 bytes per block).
- If n is followed by a c, the size is in characters.
- -time n True if the file has been accessed/modified/changed in n
- days.
- -exec command True if the executed command returns a zero value as
- exit status. The end of command must be punctuated by an escaped semicolon. A command argument {} is replaced by the current pathname.
- -ok command Like -exec except that the generated command is written
- on the standard output, then the standard input is read and the command executed only upon response y.
- -print Always true; the current pathname is printed.
- -ls Always true; prints current pathname together with its
- associated statistics. These include size in blocks
(512 bytes), protection mode, number of hard links,
user, group, size in bytes, and modification time.
Note: formatting is done internally, without executing the fls program. - -newer file True if the current file has been modified more recently
- than the argument filename.
- (expression) True if the parenthesized expression is true.
- Note: Parentheses are special to the shell and must be escaped.
- !primary True if the primary is false (! is the unary not opera
- tor).
- primary1 [ -a ] primary2
- True if both primary1 and primary2 are true. The -a is not required. It is implied by the juxtaposition of two primaries.
- primary1 -o primary2
- True if either primary1 or primary2 is true (-o is the or operator).
- ffindcmd will perform csh file name globbing based on file and directory information obtained from the FSP database.
- Since user's command shells generally cannot do the proper globbing for this program, it is recommended that user defines a shell alias or function to turn off command shell globbing before running this program. csh example:
- alias ffind \(set noglob\; exec ffindcmd \!\*\)
EXAMPLE
To find all the files called intro.ms starting from the current directory:
example% ffind . -name intro.ms -print
./manuals/assembler/intro.ms
./manuals/sun.core/intro.ms
./manuals/driver.tut/intro.ms
./manuals/sys.manager/uucp.impl/intro.ms
./supplements/general.works/unix.introduction/intro.ms
./supplements/programming.tools/sccs/intro.ms
example%
To recursively print all files names in the current directory and
below, but skipping SCCS directories:
example% ffind . -name SCCS -prune -o -print
example%
To recursively print all files names in the current directory and
below, skipping the contents of SCCS directories, but printing out the
SCCS directory name:
example% ffind . -print -name SCCS -prune
example%
To remove files named a.out or *.o that have not been accessed for a
week or more
example% ffind . \( -name a.out -o -name *.o \) -time +7 -exec frm {} \;
ENVIRONMENT
See fsp_env(7) for list of used environment variables.
SEE ALSO
fcatcmd(1), fcdcmd(1), fgetcmd(1), fgrabcmd(1), flscmd(1), fmkdir(1),
fprocmd(1), fput(1), frmcmd(1), frmdircmd(1), fver(1), fducmd(1),
fhostcmd(1), ffindcmd(1), fspd(1), fsp_prof(5)
BUGS
- There seems to be a problem using an alias as command to execute. But
since there is no globbing performed on the pathname the original FSP
commands may be used instead.