find2perl

NAME

find2perl - 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 -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

    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 -X operator.

  • -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.

  • -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

    Print out path of file (always true). If none of -exec , -ls , -print0 , or -ok is specified, then -print will 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.

© 1993–2016 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.20.2/find2perl.html