find2perl is a little translator to convert find command lines toequivalent Perl code. The resulting code is typically faster thanrunning find itself.
"paths" are a set of paths where find2perl will start its searches and"predicates" are taken from the following list.
! PREDICATE
Negate the sense of the following predicate. The !
must be passed asa distinct argument, so it may need to be surrounded by whitespace and/orquoted from interpretation by the shell using a backslash (just as withusing find(1)
).
( PREDICATES )
Group the given PREDICATES. The parentheses must be passed as distinctarguments, so they may need to be surrounded by whitespace and/orquoted from interpretation by the shell using a backslash (just as withusing find(1)
).
PREDICATE1 PREDICATE2
True if _both_ PREDICATE1 and PREDICATE2 are true; PREDICATE2 is notevaluated if PREDICATE1 is false.
PREDICATE1 -o PREDICATE2
True if either one of PREDICATE1 or PREDICATE2 is true; PREDICATE2 isnot evaluated if PREDICATE1 is true.
-follow
Follow (dereference) symlinks. The checking of file attributes dependson the position of the -follow
option. If it precedes the filecheck option, an stat
is done which means the file check applies to thefile the symbolic link is pointing to. If -follow
option follows thefile check option, this now applies to the symbolic link itself, i.e.an lstat
is done.
-depth
Change directory traversal algorithm from breadth-first to depth-first.
-prune
Do not descend into the directory currently matched.
-xdev
Do not traverse mount points (prunes search at mount-point directories).
-name GLOB
File name matches specified GLOB wildcard pattern. GLOB may need to bequoted to avoid interpretation by the shell (just as with usingfind(1)
).
-iname GLOB
Like -name
, but the match is case insensitive.
-path GLOB
Path name matches specified GLOB wildcard pattern.
-ipath GLOB
Like -path
, but the match is case insensitive.
-perm PERM
Low-order 9 bits of permission match octal value PERM.
-perm -PERM
The bits specified in PERM are all set in file's permissions.
-type X
The file's type matches perl's -X
operator.
-fstype TYPE
Filesystem of current path is of type TYPE (only NFS/non-NFS distinctionis implemented).
-user USER
True if USER is owner of file.
-group GROUP
True if file's group is GROUP.
-nouser
True if file's owner is not in password database.
-nogroup
True if file's group is not in group database.
-inum INUM
True file's inode number is INUM.
-links N
True if (hard) link count of file matches N (see below).
-size N
True if file's size matches N (see below) N is normally counted in512-byte blocks, but a suffix of "c" specifies that size should becounted in characters (bytes) and a suffix of "k" specifies thatsize should be counted in 1024-byte blocks.
-atime N
True if last-access time of file matches N (measured in days) (seebelow).
-ctime N
True if last-changed time of file's inode matches N (measured in days,see below).
-mtime N
True if last-modified time of file matches N (measured in days, see below).
-newer FILE
True if last-modified time of file matches N.
-print
Print out path of file (always true). If none of -exec
, -ls
,-print0
, or -ok
is specified, then -print
will be addedimplicitly.
-print0
Like -print, but terminates with \0 instead of \n.
-exec OPTIONS ;
exec() the arguments in OPTIONS in a subprocess; any occurrence of {} inOPTIONS will first be substituted with the path of the currentfile. Note that the command "rm" has been special-cased to use perl'sunlink() function instead (as an optimization). The ;
must be passed asa distinct argument, so it may need to be surrounded by whitespace and/orquoted from interpretation by the shell using a backslash (just as withusing find(1)
).
-ok OPTIONS ;
Like -exec, but first prompts user; if user's response does not beginwith a y, skip the exec. The ;
must be passed asa distinct argument, so it may need to be surrounded by whitespace and/orquoted from interpretation by the shell using a backslash (just as withusing find(1)
).
-eval EXPR
Has the perl script eval() the EXPR.
-ls
Simulates -exec ls -dils {} ;
-tar FILE
Adds current output to tar-format FILE.
-cpio FILE
Adds current output to old-style cpio-format FILE.
-ncpio FILE
Adds current output to "new"-style cpio-format FILE.
find, File::Find.