1. NAME

find2perl - translate find command lines to Perl code

2. SYNOPSIS

find2perl [paths] [predicates] | perl

3. DESCRIPTION

find2perl is a little translator to convert find command lines to equivalent Perl code. The resulting code is typically faster than running find itself.

paths are a set of paths where find2perl will start its searches and predicates are taken from the following list.

! PREDICATE 4 Negate the sense of the following predicate. The « ! » must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)).

( PREDICATES ) 4 Group the given PREDICATES. The parentheses must be passed as distinct arguments, so they may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)).

PREDICATE1 PREDICATE2 4 True if _both_ PREDICATE1 and PREDICATE2 are true; PREDICATE2 is not evaluated if PREDICATE1 is false.

PREDICATE1 -o PREDICATE2 4 True if either one of PREDICATE1 or PREDICATE2 is true; PREDICATE2 is not evaluated if PREDICATE1 is true.

-follow 4 Follow (dereference) symlinks. The checking of file attributes depends on the position of the « -follow » option. If it precedes the file check option, an « stat » is done which means the file check applies to the file the symbolic link is pointing to. If « -follow » option follows the file check option, this now applies to the symbolic link itself, i.e. an « lstat » is done.

-depth 4 Change directory traversal algorithm from breadth-first to depth-first.

-prune 4 Do not descend into the directory currently matched.

-xdev 4 Do not traverse mount points (prunes search at mount-point directories).

-name GLOB 4 File name matches specified GLOB wildcard pattern. GLOB may need to be quoted to avoid interpretation by the shell (just as with using find(1)).

-iname GLOB 4 Like « -name », but the match is case insensitive.

-path GLOB 4 Path name matches specified GLOB wildcard pattern.

-ipath GLOB 4 Like « -path », but the match is case insensitive.

-perm PERM 4 Low-order 9 bits of permission match octal value PERM.

-perm -PERM 4 The bits specified in PERM are all set in file's permissions.

-type X 4 The file's type matches perl's « -X » operator.

-fstype TYPE 4 Filesystem of current path is of type TYPE (only NFS/non-NFS distinction is implemented).

-user USER 4 True if USER is owner of file.

-group GROUP 4 True if file's group is GROUP.

-nouser 4 True if file's owner is not in password database.

-nogroup 4 True if file's group is not in group database.

-inum INUM 4 True file's inode number is INUM.

-links N 4 True if (hard) link count of file matches N (see below).

-size N 4 True if file's size matches N (see below) N is normally counted in 512-byte blocks, but a suffix of c specifies that size should be counted in characters (bytes) and a suffix of k specifies that size should be counted in 1024-byte blocks.

-atime N 4 True if last-access time of file matches N (measured in days) (see below).

-ctime N 4 True if last-changed time of file's inode matches N (measured in days, see below).

-mtime N 4 True if last-modified time of file matches N (measured in days, see below).

-newer FILE 4 True if last-modified time of file matches N.

-print 4 Print out path of file (always true). If none of « -exec », « -ls », « -print0 », or « -ok » is specified, then « -print » will be added implicitly.

-print0 4 Like -print, but terminates with \0 instead of \n.

-exec OPTIONS ; 4 exec() the arguments in OPTIONS in a subprocess; any occurrence of {} in OPTIONS will first be substituted with the path of the current file. Note that the command rm has been special-cased to use perl's unlink() function instead (as an optimization). The « ; » must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)).

-ok OPTIONS ; 4 Like -exec, but first prompts user; if user's response does not begin with a y, skip the exec. The « ; » must be passed as a distinct argument, so it may need to be surrounded by whitespace and/or quoted from interpretation by the shell using a backslash (just as with using find(1)).

-eval EXPR 4 Has the perl script eval() the EXPR.

-ls 4 Simulates « -exec ls -dils {} ; »

-tar FILE 4 Adds current output to tar-format FILE.

-cpio FILE 4 Adds current output to old-style cpio-format FILE.

-ncpio FILE 4 Adds current output to new-style cpio-format FILE.

Predicates which take a numeric argument N can come in three forms:

* N is prefixed with a +: match values greater than N * N is prefixed with a -: match values less than N * N is not prefixed with either + or -: match only values equal to N

4. SEE ALSO

find, File::Find.