sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 2c0828f3fb869000230e97c96fd2aa2fcd7c2e40
parent 0bd0c246a5fc7926eb463c7d7c7bb4c9bc73bef7
Author: Evan Gates <evan.gates@gmail.com>
Date:   Tue,  4 Aug 2015 08:58:15 -0700

add preliminary find(1) manpage

Diffstat:
Mfind.1 | 132+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 130 insertions(+), 2 deletions(-)

diff --git a/find.1 b/find.1 @@ -1,6 +1,134 @@ -.Dd February 28, 2015 +.Dd August 4, 2015 .Dt FIND 1 .Os sbase .Sh NAME .Nm find -.Nd TODO +.Nd find files +.Sh SYNOPSIS +.Nm +.Op Fl H | L +.Ar path Op ... +.Op Ar expression +.Sh DESCRIPTION +.Nm +walks a file hierarchy starting at each +.Ar path +and applies the +.Ar expression +to each file encountered. +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl H +Dereference symbolic links provided as +.Ar path . +.It Fl L +Dereference all symbolic links encountered. +.Sh EXTENDED DESCRIPTION +.Ar expression +is a combination of the following primaries and boolean operators. In +the following descriptions the number n can be replaced by +n, n, or -n, +to mean more than, exactly, or less than n respectively. +.Ss Primaries +.Bl -tag -width Ds +.It Fl name Ar pattern +True if the name of the file matches the given pattern. +.It Fl path Ar pattern +True if the path to the file matches the given pattern. +.It Fl nouser +True if the file belongs to a user for which getpwuid() returns NULL. +.It Fl nogroup +True if the file belongs to a group for which getgrgid() returns NULL. +.It Fl xdev +True. Do not enter directory on a different device. +.It Fl prune +True. Do not enter directory. +.It Fl perm Ar mode +True if permissions on the file match mode. Mode is a symbolic mode +as used in chmod. A leading '-' in mode checks that at least all bits +in mode are set in permissions for file. Without the leading '-' the +permissions for file must exactly match mode. +.It Fl type Ar t +True if file is of type specified by +.Ar t . +.Bl -tag -width Ds +.It Ar b +block special +.It Ar c +character special +.It Ar d +directory +.It Ar l +symbolic link +.It Ar p +FIFO +.It Ar f +regular file +.It Ar s +socket +.El +.It Fl links Ar n +True if file has +.Ar n +links. +.It Fl user Ar name +True if file belongs to user +.Ar name . +.It Fl group Ar name +True if file belongs to group +.Ar name . +.It Fl size Ar n[c] +True if file size in 512 byte sectors (rounded up), or bytes (if +.Ar c +is given), is +.Ar n . +.It Fl atime n +True if file access time is +.Ar n +days. +.It Fl ctime +True if file status change time is +.Ar n +days. +.It Fl mtime +True if file modified time is +.Ar n +days. +.It Fl exec Ar cmd [arg ...] \&; +Execute cmd with given arguments, replacing each {} in argument list +with the current file. True if cmd exits with status 0. +.It Fl exec Ar cmd [arg ...] {} + +True. Add as many files as possible to argument list and execute when +the list is full or all files have been found. +.It Fl ok Ar cmd [arg ...] \&; +Prompt the user on each file encountered whether or not to execute cmd +as with -exec. True if the user responds yes and cmd exits with status 0, +false otherwise. +.It Fl print +True. Print the path to the current file. +.It Fl newer Ar file +True if the modification time of the current file is newer than that of +the provided file. +.It Fl depth +True. Causes find to evaluate files within in a directory before the +directory itself. +.El +.Ss Operators +In order of decreasing precedence +.Bl -tag -width Ds +.It Ar \&( expression \&) +True if expression is true. +.It Ar \&! expression +True if expression if false. +.It Ar expression [ Fl a ] Ar expression +True if both expressions are true. Second expression is not evaluated +if first expression is false. +.Fl a +is implied if there is no operator between primaries. +.It Ar expression Fl o Ar expression +True if either expression is true. Second expression is not evaluated +if first expression is true. +.El +.Pp +If no expression is supplied, -print is used. If an expression is supplied +but none of -print, -exec, or -ok is supplied, then -a -print is appended +to the expressions.