find2perl - Man Page
translate find command lines to Perl code
Synopsis
find2perl [paths] [predicates] | perl
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
- 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 )
- 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
- True if _both_ PREDICATE1 and PREDICATE2 are true; PREDICATE2 is not evaluated if PREDICATE1 is false. 
- PREDICATE1 -o PREDICATE2
- True if either one of PREDICATE1 or PREDICATE2 is true; PREDICATE2 is not evaluated if PREDICATE1 is true. 
- -follow
- Follow (dereference) symlinks. The checking of file attributes depends on the position of the - -followoption. If it precedes the file check option, an- statis done which means the file check applies to the file the symbolic link is pointing to. If- -followoption follows the file check option, this now applies to the symbolic link itself, i.e. an- lstatis 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 be quoted to avoid interpretation by the shell (just as with using - find(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 - -Xoperator.
- -fstype TYPE
- Filesystem of current path is of type TYPE (only NFS/non-NFS distinction is 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 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
- True if last-access time of file matches N (measured in days) (see below). 
- -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 out path of file (always true). If none of - -exec,- -ls,- -print0, or- -okis specified, then- -printwill be added implicitly.
- -print0
- Like -print, but terminates with \0 instead of \n. 
- -exec OPTIONS ;
- 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 ;
- 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
- 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. 
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
See Also
find, File::Find.