xref: /freebsd/usr.bin/find/find.1 (revision 9ed0c92c91e9a8459462774b33c368b56e2c7ced)
158540776STim J. Robbins.\" Copyright (c) 1990, 1993
29b50d902SRodney W. Grimes.\"	The Regents of the University of California.  All rights reserved.
39b50d902SRodney W. Grimes.\"
49b50d902SRodney W. Grimes.\" This code is derived from software contributed to Berkeley by
59b50d902SRodney W. Grimes.\" the Institute of Electrical and Electronics Engineers, Inc.
69b50d902SRodney W. Grimes.\"
79b50d902SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without
89b50d902SRodney W. Grimes.\" modification, are permitted provided that the following conditions
99b50d902SRodney W. Grimes.\" are met:
109b50d902SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright
119b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer.
129b50d902SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright
139b50d902SRodney W. Grimes.\"    notice, this list of conditions and the following disclaimer in the
149b50d902SRodney W. Grimes.\"    documentation and/or other materials provided with the distribution.
159b50d902SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors
169b50d902SRodney W. Grimes.\"    may be used to endorse or promote products derived from this software
179b50d902SRodney W. Grimes.\"    without specific prior written permission.
189b50d902SRodney W. Grimes.\"
199b50d902SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
209b50d902SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
219b50d902SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
229b50d902SRodney W. Grimes.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
239b50d902SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
249b50d902SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
259b50d902SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
269b50d902SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
279b50d902SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
289b50d902SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
299b50d902SRodney W. Grimes.\" SUCH DAMAGE.
309b50d902SRodney W. Grimes.\"
31841484cdSPeter Wemm.\"	@(#)find.1	8.7 (Berkeley) 5/9/95
32c3aac50fSPeter Wemm.\" $FreeBSD$
339b50d902SRodney W. Grimes.\"
34115b335eSEitan Adler.Dd November 18, 2012
359b50d902SRodney W. Grimes.Dt FIND 1
369b50d902SRodney W. Grimes.Os
379b50d902SRodney W. Grimes.Sh NAME
389b50d902SRodney W. Grimes.Nm find
399b50d902SRodney W. Grimes.Nd walk a file hierarchy
409b50d902SRodney W. Grimes.Sh SYNOPSIS
418fe908efSRuslan Ermilov.Nm
429b50d902SRodney W. Grimes.Op Fl H | Fl L | Fl P
437c1d4b3aSAkinori MUSHA.Op Fl EXdsx
44dfab7fb1SRuslan Ermilov.Op Fl f Ar path
45dfab7fb1SRuslan Ermilov.Ar path ...
46dfab7fb1SRuslan Ermilov.Op Ar expression
47107f86a2SStefan Farfeleder.Nm
48107f86a2SStefan Farfeleder.Op Fl H | Fl L | Fl P
49107f86a2SStefan Farfeleder.Op Fl EXdsx
50dfab7fb1SRuslan Ermilov.Fl f Ar path
51dfab7fb1SRuslan Ermilov.Op Ar path ...
52dfab7fb1SRuslan Ermilov.Op Ar expression
539b50d902SRodney W. Grimes.Sh DESCRIPTION
54e8937ba0SPhilippe CharnierThe
55e8937ba0SPhilippe Charnier.Nm
56e8937ba0SPhilippe Charnierutility recursively descends the directory tree for each
57dfab7fb1SRuslan Ermilov.Ar path
589b50d902SRodney W. Grimeslisted, evaluating an
599b50d902SRodney W. Grimes.Ar expression
60bfd12208SRuslan Ermilov(composed of the
61bfd12208SRuslan Ermilov.Dq primaries
62bfd12208SRuslan Ermilovand
63bfd12208SRuslan Ermilov.Dq operands
64bfd12208SRuslan Ermilovlisted below) in terms
659b50d902SRodney W. Grimesof each file in the tree.
669b50d902SRodney W. Grimes.Pp
679b50d902SRodney W. GrimesThe options are as follows:
68bfd12208SRuslan Ermilov.Bl -tag -width indent
697c1d4b3aSAkinori MUSHA.It Fl E
707c1d4b3aSAkinori MUSHAInterpret regular expressions followed by
717c1d4b3aSAkinori MUSHA.Ic -regex
727c1d4b3aSAkinori MUSHAand
737c1d4b3aSAkinori MUSHA.Ic -iregex
74fbccd9dbSRuslan Ermilovprimaries as extended (modern) regular expressions rather than basic
75bfd12208SRuslan Ermilovregular expressions (BRE's).
76bfd12208SRuslan ErmilovThe
777c1d4b3aSAkinori MUSHA.Xr re_format 7
787c1d4b3aSAkinori MUSHAmanual page fully describes both formats.
799b50d902SRodney W. Grimes.It Fl H
803c94f41fSPhilippe CharnierCause the file information and file type (see
819b50d902SRodney W. Grimes.Xr stat 2 )
829b50d902SRodney W. Grimesreturned for each symbolic link specified on the command line to be
839b50d902SRodney W. Grimesthose of the file referenced by the link, not the link itself.
849b50d902SRodney W. GrimesIf the referenced file does not exist, the file information and type will
856df69548SBruce Evansbe for the link itself.
866df69548SBruce EvansFile information of all symbolic links not on
879b50d902SRodney W. Grimesthe command line is that of the link itself.
889b50d902SRodney W. Grimes.It Fl L
893c94f41fSPhilippe CharnierCause the file information and file type (see
909b50d902SRodney W. Grimes.Xr stat 2 )
919b50d902SRodney W. Grimesreturned for each symbolic link to be those of the file referenced by the
929b50d902SRodney W. Grimeslink, not the link itself.
939b50d902SRodney W. GrimesIf the referenced file does not exist, the file information and type will
949b50d902SRodney W. Grimesbe for the link itself.
9547d91ba3SDag-Erling Smørgrav.Pp
9647d91ba3SDag-Erling SmørgravThis option is equivalent to the deprecated
9747d91ba3SDag-Erling Smørgrav.Ic -follow
9847d91ba3SDag-Erling Smørgravprimary.
999b50d902SRodney W. Grimes.It Fl P
1003c94f41fSPhilippe CharnierCause the file information and file type (see
1019b50d902SRodney W. Grimes.Xr stat 2 )
1029b50d902SRodney W. Grimesreturned for each symbolic link to be those of the link itself.
1033d9a9402SJohn PolstraThis is the default.
1049b50d902SRodney W. Grimes.It Fl X
1053c94f41fSPhilippe CharnierPermit
1069b50d902SRodney W. Grimes.Nm
1079b50d902SRodney W. Grimesto be safely used in conjunction with
1089b50d902SRodney W. Grimes.Xr xargs 1 .
1099b50d902SRodney W. GrimesIf a file name contains any of the delimiting characters used by
110bfd12208SRuslan Ermilov.Xr xargs 1 ,
1119b50d902SRodney W. Grimesa diagnostic message is displayed on standard error, and the file
1129b50d902SRodney W. Grimesis skipped.
113bfd12208SRuslan ErmilovThe delimiting characters include single
114bfd12208SRuslan Ermilov.Pq Dq Li " ' "
115bfd12208SRuslan Ermilovand double
116bfd12208SRuslan Ermilov.Pq Dq Li " \*q "
117bfd12208SRuslan Ermilovquotes, backslash
118bfd12208SRuslan Ermilov.Pq Dq Li \e ,
119bfd12208SRuslan Ermilovspace, tab and newline characters.
120a8d50686STom Rhodes.Pp
121a8d50686STom RhodesHowever, you may wish to consider the
122a8d50686STom Rhodes.Fl print0
123a8d50686STom Rhodesprimary in conjunction with
124e2f8ed51SRuslan Ermilov.Dq Nm xargs Fl 0
125a8d50686STom Rhodesas an effective alternative.
1269b50d902SRodney W. Grimes.It Fl d
1273c94f41fSPhilippe CharnierCause
1288fe908efSRuslan Ermilov.Nm
129eb555785SJilles Tjoelkerto perform a depth-first traversal.
13047d91ba3SDag-Erling Smørgrav.Pp
131eb555785SJilles TjoelkerThis option is a BSD-specific equivalent of the
13247d91ba3SDag-Erling Smørgrav.Ic -depth
133eb555785SJilles Tjoelkerprimary specified by
1341c832963SOliver Eikemeier.St -p1003.1-2001 .
135eb555785SJilles TjoelkerRefer to its description under
136eb555785SJilles Tjoelker.Sx PRIMARIES
137eb555785SJilles Tjoelkerfor more information.
1386d0c7e13SWolfram Schneider.It Fl s
1393c94f41fSPhilippe CharnierCause
1408fe908efSRuslan Ermilov.Nm
1416df69548SBruce Evansto traverse the file hierarchies in lexicographical order,
1426df69548SBruce Evansi.e., alphabetical order within each directory.
1436df69548SBruce EvansNote:
144bfd12208SRuslan Ermilov.Ql find -s
1456d0c7e13SWolfram Schneiderand
146bfd12208SRuslan Ermilov.Ql "find | sort"
1476d0c7e13SWolfram Schneidermay give different results.
1489b50d902SRodney W. Grimes.It Fl x
1493c94f41fSPhilippe CharnierPrevent
1508fe908efSRuslan Ermilov.Nm
1519b50d902SRodney W. Grimesfrom descending into directories that have a device number different
1529b50d902SRodney W. Grimesthan that of the file from which the descent began.
15347d91ba3SDag-Erling Smørgrav.Pp
15447d91ba3SDag-Erling SmørgravThis option is equivalent to the deprecated
15547d91ba3SDag-Erling Smørgrav.Ic -xdev
15647d91ba3SDag-Erling Smørgravprimary.
1579b50d902SRodney W. Grimes.El
1589b50d902SRodney W. Grimes.Sh PRIMARIES
159be2cad28SGlen BarberAll primaries which take a numeric argument allow the number to be
160be2cad28SGlen Barberpreceded by a plus sign
161be2cad28SGlen Barber.Pq Dq Li +
162be2cad28SGlen Barberor a minus sign
163be2cad28SGlen Barber.Pq Dq Li - .
164be2cad28SGlen BarberA preceding plus sign means
165be2cad28SGlen Barber.Dq more than n ,
166be2cad28SGlen Barbera preceding minus sign means
167be2cad28SGlen Barber.Dq less than n
168be2cad28SGlen Barberand neither means
169be2cad28SGlen Barber.Dq exactly n .
170bfd12208SRuslan Ermilov.Bl -tag -width indent
17131d53425SCeri Davies.It Ic -Bmin Ar n
17231d53425SCeri DaviesTrue if the difference between the time of a file's inode creation
17331d53425SCeri Daviesand the time
17431d53425SCeri Davies.Nm
17531d53425SCeri Davieswas started, rounded up to the next full minute, is
17631d53425SCeri Davies.Ar n
17731d53425SCeri Daviesminutes.
17831d53425SCeri Davies.It Ic -Bnewer Ar file
17931d53425SCeri DaviesSame as
18031d53425SCeri Davies.Ic -newerBm .
18131d53425SCeri Davies.It Ic -Btime Ar n Ns Op Cm smhdw
18231d53425SCeri DaviesIf no units are specified, this primary evaluates to
18331d53425SCeri Daviestrue if the difference between the time of a file's inode creation
18431d53425SCeri Daviesand the time
18531d53425SCeri Davies.Nm
18631d53425SCeri Davieswas started, rounded up to the next full 24-hour period, is
18731d53425SCeri Davies.Ar n
18831d53425SCeri Davies24-hour periods.
18931d53425SCeri Davies.Pp
19031d53425SCeri DaviesIf units are specified, this primary evaluates to
1913b0fbd31SRuslan Ermilovtrue if the difference between the time of a file's inode creation
1923b0fbd31SRuslan Ermilovand the time
19331d53425SCeri Davies.Nm
19431d53425SCeri Davieswas started is exactly
19531d53425SCeri Davies.Ar n
19631d53425SCeri Daviesunits.
19731d53425SCeri DaviesPlease refer to the
19831d53425SCeri Davies.Ic -atime
19931d53425SCeri Daviesprimary description for information on supported time units.
20053e87059STom Rhodes.It Ic -acl
201fbccd9dbSRuslan ErmilovMay be used in conjunction with other primaries to locate
20253e87059STom Rhodesfiles with extended ACLs.
20353e87059STom RhodesSee
20453e87059STom Rhodes.Xr acl 3
20553e87059STom Rhodesfor more information.
206115b335eSEitan Adler.It Ic -amin Oo Cm - Ns | Ns Cm + Oc Ns Ar n
2073f5223f8SWolfram SchneiderTrue if the difference between the file last access time and the time
2088fe908efSRuslan Ermilov.Nm
20945fe9882SMatthew Huntwas started, rounded up to the next full minute, is
210115b335eSEitan Adlermore than
2113f5223f8SWolfram Schneider.Ar n
212115b335eSEitan Adler.Pq + Ns Ar n ,
213115b335eSEitan Adlerless than
214115b335eSEitan Adler.Ar n
215115b335eSEitan Adler.Pq - Ns Ar n ,
216115b335eSEitan Adleror exactly
217115b335eSEitan Adler.Ar n
218115b335eSEitan Adlerminutes ago.
219ea92232aSPoul-Henning Kamp.It Ic -anewer Ar file
220ea92232aSPoul-Henning KampSame as
221ea92232aSPoul-Henning Kamp.Ic -neweram .
222adff4fcaSRuslan Ermilov.It Ic -atime Ar n Ns Op Cm smhdw
223adff4fcaSRuslan ErmilovIf no units are specified, this primary evaluates to
224adff4fcaSRuslan Ermilovtrue if the difference between the file last access time and the time
2258fe908efSRuslan Ermilov.Nm
22654874bb6SRuslan Ermilovwas started, rounded up to the next full 24-hour period, is
2279b50d902SRodney W. Grimes.Ar n
22854874bb6SRuslan Ermilov24-hour periods.
229adff4fcaSRuslan Ermilov.Pp
230adff4fcaSRuslan ErmilovIf units are specified, this primary evaluates to
231adff4fcaSRuslan Ermilovtrue if the difference between the file last access time and the time
232adff4fcaSRuslan Ermilov.Nm
233adff4fcaSRuslan Ermilovwas started is exactly
234adff4fcaSRuslan Ermilov.Ar n
235adff4fcaSRuslan Ermilovunits.
236adff4fcaSRuslan ErmilovPossible time units are as follows:
237adff4fcaSRuslan Ermilov.Pp
238adff4fcaSRuslan Ermilov.Bl -tag -width indent -compact
239adff4fcaSRuslan Ermilov.It Cm s
240adff4fcaSRuslan Ermilovsecond
241adff4fcaSRuslan Ermilov.It Cm m
242adff4fcaSRuslan Ermilovminute (60 seconds)
243adff4fcaSRuslan Ermilov.It Cm h
244adff4fcaSRuslan Ermilovhour (60 minutes)
245adff4fcaSRuslan Ermilov.It Cm d
246adff4fcaSRuslan Ermilovday (24 hours)
247adff4fcaSRuslan Ermilov.It Cm w
248adff4fcaSRuslan Ermilovweek (7 days)
249adff4fcaSRuslan Ermilov.El
250adff4fcaSRuslan Ermilov.Pp
251adff4fcaSRuslan ErmilovAny number of units may be combined in one
252adff4fcaSRuslan Ermilov.Ic -atime
253adff4fcaSRuslan Ermilovargument, for example,
254adff4fcaSRuslan Ermilov.Dq Li "-atime -1h30m" .
255adff4fcaSRuslan ErmilovUnits are probably only useful when used in conjunction with the
256adff4fcaSRuslan Ermilov.Cm +
257adff4fcaSRuslan Ermilovor
258adff4fcaSRuslan Ermilov.Cm -
259adff4fcaSRuslan Ermilovmodifier.
260115b335eSEitan Adler.It Ic -cmin Oo Cm - Ns | Ns Cm + Oc Ns Ar n
2613f5223f8SWolfram SchneiderTrue if the difference between the time of last change of file status
2623f5223f8SWolfram Schneiderinformation and the time
2638fe908efSRuslan Ermilov.Nm
26445fe9882SMatthew Huntwas started, rounded up to the next full minute, is
265115b335eSEitan Adlermore than
2663f5223f8SWolfram Schneider.Ar n
267115b335eSEitan Adler.Pq + Ns Ar n ,
268115b335eSEitan Adlerless than
269115b335eSEitan Adler.Ar n
270115b335eSEitan Adler.Pq - Ns Ar n ,
271115b335eSEitan Adleror exactly
272115b335eSEitan Adler.Ar n
273115b335eSEitan Adlerminutes ago.
274ea92232aSPoul-Henning Kamp.It Ic -cnewer Ar file
275ea92232aSPoul-Henning KampSame as
276ea92232aSPoul-Henning Kamp.Ic -newercm .
277adff4fcaSRuslan Ermilov.It Ic -ctime Ar n Ns Op Cm smhdw
278adff4fcaSRuslan ErmilovIf no units are specified, this primary evaluates to
279adff4fcaSRuslan Ermilovtrue if the difference between the time of last change of file status
2809b50d902SRodney W. Grimesinformation and the time
2818fe908efSRuslan Ermilov.Nm
28254874bb6SRuslan Ermilovwas started, rounded up to the next full 24-hour period, is
2839b50d902SRodney W. Grimes.Ar n
28454874bb6SRuslan Ermilov24-hour periods.
285adff4fcaSRuslan Ermilov.Pp
286adff4fcaSRuslan ErmilovIf units are specified, this primary evaluates to
287adff4fcaSRuslan Ermilovtrue if the difference between the time of last change of file status
288adff4fcaSRuslan Ermilovinformation and the time
289adff4fcaSRuslan Ermilov.Nm
290adff4fcaSRuslan Ermilovwas started is exactly
291adff4fcaSRuslan Ermilov.Ar n
292adff4fcaSRuslan Ermilovunits.
293adff4fcaSRuslan ErmilovPlease refer to the
294adff4fcaSRuslan Ermilov.Ic -atime
295adff4fcaSRuslan Ermilovprimary description for information on supported time units.
29646b993ffSWarner Losh.It Ic -d
297a8622446SIsabell LongNon-portable, BSD-specific version of
29846b993ffSWarner Losh.Ic depth .
29946b993ffSWarner LoshGNU find implements this as a primary in mistaken emulation of
30046b993ffSWarner Losh.Fx
30181b295a1SEitan Adler.Nm .
302abacbbbfSPeter Wemm.It Ic -delete
3036df69548SBruce EvansDelete found files and/or directories.
3046df69548SBruce EvansAlways returns true.
3056df69548SBruce EvansThis executes
306abacbbbfSPeter Wemmfrom the current working directory as
307abacbbbfSPeter Wemm.Nm
3086df69548SBruce Evansrecurses down the tree.
309bfd12208SRuslan ErmilovIt will not attempt to delete a filename with a
310bfd12208SRuslan Ermilov.Dq Pa /
311bfd12208SRuslan Ermilovcharacter in its pathname relative to
312bfd12208SRuslan Ermilov.Dq Pa \&.
313bfd12208SRuslan Ermilovfor security reasons.
31454874bb6SRuslan ErmilovDepth-first traversal processing is implied by this option.
3155102783bSEitan AdlerThe
3165102783bSEitan Adler.Ic -delete
3175102783bSEitan Adlerprimary will fail to delete a directory if it is not empty.
318a05cb852SJilles TjoelkerFollowing symlinks is incompatible with this option.
3199b4e871aSDavid E. O'Brien.It Ic -depth
3209b4e871aSDavid E. O'BrienAlways true;
321a8622446SIsabell Longsame as the non-portable
3229b4e871aSDavid E. O'Brien.Fl d
323eb555785SJilles Tjoelkeroption.
324eb555785SJilles TjoelkerCause
325eb555785SJilles Tjoelker.Nm
326eb555785SJilles Tjoelkerto perform a depth-first traversal, i.e., directories
327eb555785SJilles Tjoelkerare visited in post-order and all entries in a directory will be acted
328eb555785SJilles Tjoelkeron before the directory itself.
329eb555785SJilles TjoelkerBy default,
330eb555785SJilles Tjoelker.Nm
331eb555785SJilles Tjoelkervisits directories in pre-order, i.e., before their contents.
332eb555785SJilles TjoelkerNote, the default is
333eb555785SJilles Tjoelker.Em not
334eb555785SJilles Tjoelkera breadth-first traversal.
335eb555785SJilles Tjoelker.Pp
336eb555785SJilles TjoelkerThe
337eb555785SJilles Tjoelker.Ic -depth
338eb555785SJilles Tjoelkerprimary
339eb555785SJilles Tjoelkercan be useful when
340eb555785SJilles Tjoelker.Nm
341eb555785SJilles Tjoelkeris used with
342eb555785SJilles Tjoelker.Xr cpio 1
343eb555785SJilles Tjoelkerto process files that are contained in directories with unusual permissions.
344eb555785SJilles TjoelkerIt ensures that you have write permission while you are placing files in a
345eb555785SJilles Tjoelkerdirectory, then sets the directory's permissions as the last thing.
3461c832963SOliver Eikemeier.It Ic -depth Ar n
3471c832963SOliver EikemeierTrue if the depth of the file relative to the starting point of the traversal
3481c832963SOliver Eikemeieris
3491c832963SOliver Eikemeier.Ar n .
350ed1a4621SPeter Wemm.It Ic -empty
351ed1a4621SPeter WemmTrue if the current file or directory is empty.
352c93e83feSRuslan Ermilov.It Ic -exec Ar utility Oo Ar argument ... Oc Li \&;
3539b50d902SRodney W. GrimesTrue if the program named
3549b50d902SRodney W. Grimes.Ar utility
3559b50d902SRodney W. Grimesreturns a zero value as its exit status.
356bfd12208SRuslan ErmilovOptional
357bfd12208SRuslan Ermilov.Ar arguments
358bfd12208SRuslan Ermilovmay be passed to the utility.
359bfd12208SRuslan ErmilovThe expression must be terminated by a semicolon
360bfd12208SRuslan Ermilov.Pq Dq Li \&; .
3616a2b59f8SJens SchweikhardtIf you invoke
3626a2b59f8SJens Schweikhardt.Nm
3636a2b59f8SJens Schweikhardtfrom a shell you may need to quote the semicolon if the shell would
3646a2b59f8SJens Schweikhardtotherwise treat it as a control operator.
365bfd12208SRuslan ErmilovIf the string
366bfd12208SRuslan Ermilov.Dq Li {}
367bfd12208SRuslan Ermilovappears anywhere in the utility name or the
3689b50d902SRodney W. Grimesarguments it is replaced by the pathname of the current file.
3699b50d902SRodney W. Grimes.Ar Utility
3709b50d902SRodney W. Grimeswill be executed from the directory from which
3718fe908efSRuslan Ermilov.Nm
3729b50d902SRodney W. Grimeswas executed.
37308274979SYaroslav Tykhiy.Ar Utility
37408274979SYaroslav Tykhiyand
37508274979SYaroslav Tykhiy.Ar arguments
37608274979SYaroslav Tykhiyare not subject to the further expansion of shell patterns
37708274979SYaroslav Tykhiyand constructs.
378c93e83feSRuslan Ermilov.It Ic -exec Ar utility Oo Ar argument ... Oc Li {} +
3795e25d888STim J. RobbinsSame as
3805e25d888STim J. Robbins.Ic -exec ,
3815e25d888STim J. Robbinsexcept that
3825e25d888STim J. Robbins.Dq Li {}
3835e25d888STim J. Robbinsis replaced with as many pathnames as possible for each invocation of
3845e25d888STim J. Robbins.Ar utility .
3855e25d888STim J. RobbinsThis behaviour is similar to that of
3865e25d888STim J. Robbins.Xr xargs 1 .
387c93e83feSRuslan Ermilov.It Ic -execdir Ar utility Oo Ar argument ... Oc Li \&;
388127d7563SWarner LoshThe
389bfd12208SRuslan Ermilov.Ic -execdir
390127d7563SWarner Loshprimary is identical to the
391127d7563SWarner Losh.Ic -exec
392127d7563SWarner Loshprimary with the exception that
393bfd12208SRuslan Ermilov.Ar utility
394127d7563SWarner Loshwill be executed from the directory that holds
3956df69548SBruce Evansthe current file.
3966df69548SBruce EvansThe filename substituted for
397bfd12208SRuslan Ermilovthe string
398bfd12208SRuslan Ermilov.Dq Li {}
399bfd12208SRuslan Ermilovis not qualified.
40046b993ffSWarner Losh.It Ic -execdir Ar utility Oo Ar argument ... Oc Li {} +
40146b993ffSWarner LoshSame as
40246b993ffSWarner Losh.Ic -execdir ,
40346b993ffSWarner Loshexcept that
40446b993ffSWarner Losh.Dq Li {}
40546b993ffSWarner Loshis replaced with as many pathnames as possible for each invocation of
40646b993ffSWarner Losh.Ar utility .
40746b993ffSWarner LoshThis behaviour is similar to that of
40846b993ffSWarner Losh.Xr xargs 1 .
4097fd5ee41SRuslan Ermilov.It Ic -flags Oo Cm - Ns | Ns Cm + Oc Ns Ar flags , Ns Ar notflags
4107fd5ee41SRuslan ErmilovThe flags are specified using symbolic names (see
411208691fcSRuslan Ermilov.Xr chflags 1 ) .
4127fd5ee41SRuslan ErmilovThose with the
4137fd5ee41SRuslan Ermilov.Qq Li no
4147fd5ee41SRuslan Ermilovprefix (except
4157fd5ee41SRuslan Ermilov.Qq Li nodump )
4167fd5ee41SRuslan Ermilovare said to be
4177fd5ee41SRuslan Ermilov.Ar notflags .
4187fd5ee41SRuslan ErmilovFlags in
4197fd5ee41SRuslan Ermilov.Ar flags
4207fd5ee41SRuslan Ermilovare checked to be set, and flags in
4217fd5ee41SRuslan Ermilov.Ar notflags
4227fd5ee41SRuslan Ermilovare checked to be not set.
423208691fcSRuslan ErmilovNote that this is different from
424208691fcSRuslan Ermilov.Ic -perm ,
4257fd5ee41SRuslan Ermilovwhich only allows the user to specify mode bits that are set.
4267fd5ee41SRuslan Ermilov.Pp
4277fd5ee41SRuslan ErmilovIf flags are preceded by a dash
4287fd5ee41SRuslan Ermilov.Pq Dq Li - ,
4297fd5ee41SRuslan Ermilovthis primary evaluates to true
4307fd5ee41SRuslan Ermilovif at least all of the bits in
4317fd5ee41SRuslan Ermilov.Ar flags
4327fd5ee41SRuslan Ermilovand none of the bits in
4337fd5ee41SRuslan Ermilov.Ar notflags
4347fd5ee41SRuslan Ermilovare set in the file's flags bits.
4357fd5ee41SRuslan ErmilovIf flags are preceded by a plus
4367fd5ee41SRuslan Ermilov.Pq Dq Li + ,
4377fd5ee41SRuslan Ermilovthis primary evaluates to true
4387fd5ee41SRuslan Ermilovif any of the bits in
4397fd5ee41SRuslan Ermilov.Ar flags
4407fd5ee41SRuslan Ermilovis set in the file's flags bits,
4417fd5ee41SRuslan Ermilovor any of the bits in
4427fd5ee41SRuslan Ermilov.Ar notflags
4437fd5ee41SRuslan Ermilovis not set in the file's flags bits.
4447fd5ee41SRuslan ErmilovOtherwise,
4457fd5ee41SRuslan Ermilovthis primary evaluates to true
4467fd5ee41SRuslan Ermilovif the bits in
4477fd5ee41SRuslan Ermilov.Ar flags
4487fd5ee41SRuslan Ermilovexactly match the file's flags bits,
4497fd5ee41SRuslan Ermilovand none of the
4507fd5ee41SRuslan Ermilov.Ar flags
4517fd5ee41SRuslan Ermilovbits match those of
4527fd5ee41SRuslan Ermilov.Ar notflags .
4539b50d902SRodney W. Grimes.It Ic -fstype Ar type
4549b50d902SRodney W. GrimesTrue if the file is contained in a file system of type
4559b50d902SRodney W. Grimes.Ar type .
456841484cdSPeter WemmThe
457d740b7c7SPawel Jakub Dawidek.Xr lsvfs 1
458841484cdSPeter Wemmcommand can be used to find out the types of file systems
459d740b7c7SPawel Jakub Dawidekthat are available on the system.
460bfd12208SRuslan ErmilovIn addition, there are two pseudo-types,
461bfd12208SRuslan Ermilov.Dq Li local
462bfd12208SRuslan Ermilovand
463bfd12208SRuslan Ermilov.Dq Li rdonly .
4649b50d902SRodney W. GrimesThe former matches any file system physically mounted on the system where
4659b50d902SRodney W. Grimesthe
4668fe908efSRuslan Ermilov.Nm
4679b50d902SRodney W. Grimesis being executed and the latter matches any file system which is
4689b50d902SRodney W. Grimesmounted read-only.
46946b993ffSWarner Losh.It Ic -gid Ar gname
47046b993ffSWarner LoshThe same thing as
47146b993ffSWarner Losh.Ar -group Ar gname
47246b993ffSWarner Loshfor compatibility with GNU find.
47346b993ffSWarner LoshGNU find imposes a restriction that
47446b993ffSWarner Losh.Ar gname
47546b993ffSWarner Loshis numeric, while
47681b295a1SEitan Adler.Nm
47746b993ffSWarner Loshdoes not.
4789b50d902SRodney W. Grimes.It Ic -group Ar gname
4799b50d902SRodney W. GrimesTrue if the file belongs to the group
4809b50d902SRodney W. Grimes.Ar gname .
4819b50d902SRodney W. GrimesIf
4829b50d902SRodney W. Grimes.Ar gname
4839b50d902SRodney W. Grimesis numeric and there is no such group name, then
4849b50d902SRodney W. Grimes.Ar gname
485bfd12208SRuslan Ermilovis treated as a group ID.
48646b993ffSWarner Losh.It Ic -ignore_readdir_race
48740072dc2SJilles TjoelkerIgnore errors because a file or a directory is deleted
48840072dc2SJilles Tjoelkerafter reading the name from a directory.
48940072dc2SJilles TjoelkerThis option does not affect errors occurring on starting points.
49046b993ffSWarner Losh.It Ic -ilname Ar pattern
49146b993ffSWarner LoshLike
49246b993ffSWarner Losh.Ic -lname ,
49346b993ffSWarner Loshbut the match is case insensitive.
494a66a6a2aSWarner LoshThis is a GNU find extension.
495208691fcSRuslan Ermilov.It Ic -iname Ar pattern
496208691fcSRuslan ErmilovLike
497208691fcSRuslan Ermilov.Ic -name ,
498208691fcSRuslan Ermilovbut the match is case insensitive.
4999b50d902SRodney W. Grimes.It Ic -inum Ar n
5009b50d902SRodney W. GrimesTrue if the file has inode number
5019b50d902SRodney W. Grimes.Ar n .
502208691fcSRuslan Ermilov.It Ic -ipath Ar pattern
503208691fcSRuslan ErmilovLike
504208691fcSRuslan Ermilov.Ic -path ,
505208691fcSRuslan Ermilovbut the match is case insensitive.
506208691fcSRuslan Ermilov.It Ic -iregex Ar pattern
507208691fcSRuslan ErmilovLike
508208691fcSRuslan Ermilov.Ic -regex ,
509208691fcSRuslan Ermilovbut the match is case insensitive.
51046b993ffSWarner Losh.It Ic -iwholename Ar pattern
51146b993ffSWarner LoshThe same thing as
51246b993ffSWarner Losh.Ic -ipath ,
51346b993ffSWarner Loshfor GNU find compatibility.
5149b50d902SRodney W. Grimes.It Ic -links Ar n
5159b50d902SRodney W. GrimesTrue if the file has
5169b50d902SRodney W. Grimes.Ar n
5179b50d902SRodney W. Grimeslinks.
51846b993ffSWarner Losh.It Ic -lname Ar pattern
51946b993ffSWarner LoshLike
52046b993ffSWarner Losh.Ic -name ,
521a66a6a2aSWarner Loshbut the contents of the symbolic link are matched instead of the file
522a66a6a2aSWarner Loshname.
523a66a6a2aSWarner LoshThis is a GNU find extension.
5249b50d902SRodney W. Grimes.It Ic -ls
5259b50d902SRodney W. GrimesThis primary always evaluates to true.
5269b50d902SRodney W. GrimesThe following information for the current file is written to standard output:
52754874bb6SRuslan Ermilovits inode number, size in 512-byte blocks, file permissions, number of hard
5289b50d902SRodney W. Grimeslinks, owner, group, size in bytes, last modification time, and pathname.
5299f365aa1SEd SchoutenIf the file is a block or character special file, the device number
5309b50d902SRodney W. Grimeswill be displayed instead of the size in bytes.
53154874bb6SRuslan ErmilovIf the file is a symbolic link, the pathname of the linked-to file will be
532bfd12208SRuslan Ermilovdisplayed preceded by
533bfd12208SRuslan Ermilov.Dq Li -> .
534bfd12208SRuslan ErmilovThe format is identical to that produced by
535bfd12208SRuslan Ermilov.Bk -words
536fbccd9dbSRuslan Ermilov.Dq Nm ls Fl dgils .
537bfd12208SRuslan Ermilov.Ek
538c76bc8f3SOllivier Robert.It Ic -maxdepth Ar n
5399c61111dSOliver EikemeierAlways true; descend at most
5409c61111dSOliver Eikemeier.Ar n
5419c61111dSOliver Eikemeierdirectory levels below the command line arguments.
542d79829afSOliver EikemeierIf any
543d79829afSOliver Eikemeier.Ic -maxdepth
544d79829afSOliver Eikemeierprimary is specified, it applies to the entire expression even if it would
545d79829afSOliver Eikemeiernot normally be evaluated.
546fbccd9dbSRuslan Ermilov.Dq Ic -maxdepth Li 0
547d79829afSOliver Eikemeierlimits the whole search to the command line arguments.
548c76bc8f3SOllivier Robert.It Ic -mindepth Ar n
5499c61111dSOliver EikemeierAlways true; do not apply any tests or actions at levels less than
5509c61111dSOliver Eikemeier.Ar n .
551d79829afSOliver EikemeierIf any
552d79829afSOliver Eikemeier.Ic -mindepth
553d79829afSOliver Eikemeierprimary is specified, it applies to the entire expression even if it would
554d79829afSOliver Eikemeiernot normally be evaluated.
555fbccd9dbSRuslan Ermilov.Dq Ic -mindepth Li 1
556d79829afSOliver Eikemeierprocesses all but the command line arguments.
557115b335eSEitan Adler.It Ic -mmin Oo Cm - Ns | Ns Cm + Oc Ns Ar n
5583f5223f8SWolfram SchneiderTrue if the difference between the file last modification time and the time
5598fe908efSRuslan Ermilov.Nm
56045fe9882SMatthew Huntwas started, rounded up to the next full minute, is
5613f5223f8SWolfram Schneider.Ar n
562115b335eSEitan Adler.Pq + Ns Ar n ,
563115b335eSEitan Adlerless than
564115b335eSEitan Adler.Ar n
565115b335eSEitan Adler.Pq - Ns Ar n ,
566115b335eSEitan Adleror exactly
567115b335eSEitan Adler.Ar n
568115b335eSEitan Adlerminutes ago.
569208691fcSRuslan Ermilov.It Ic -mnewer Ar file
570208691fcSRuslan ErmilovSame as
571208691fcSRuslan Ermilov.Ic -newer .
57246b993ffSWarner Losh.It Ic -mount
57346b993ffSWarner LoshThe same thing as
57446b993ffSWarner Losh.Ic -xdev ,
57546b993ffSWarner Loshfor GNU find compatibility.
576adff4fcaSRuslan Ermilov.It Ic -mtime Ar n Ns Op Cm smhdw
577adff4fcaSRuslan ErmilovIf no units are specified, this primary evaluates to
578adff4fcaSRuslan Ermilovtrue if the difference between the file last modification time and the time
5798fe908efSRuslan Ermilov.Nm
58054874bb6SRuslan Ermilovwas started, rounded up to the next full 24-hour period, is
5819b50d902SRodney W. Grimes.Ar n
58254874bb6SRuslan Ermilov24-hour periods.
583adff4fcaSRuslan Ermilov.Pp
584adff4fcaSRuslan ErmilovIf units are specified, this primary evaluates to
585adff4fcaSRuslan Ermilovtrue if the difference between the file last modification time and the time
586adff4fcaSRuslan Ermilov.Nm
587adff4fcaSRuslan Ermilovwas started is exactly
588adff4fcaSRuslan Ermilov.Ar n
589adff4fcaSRuslan Ermilovunits.
590adff4fcaSRuslan ErmilovPlease refer to the
591adff4fcaSRuslan Ermilov.Ic -atime
592adff4fcaSRuslan Ermilovprimary description for information on supported time units.
5939b50d902SRodney W. Grimes.It Ic -name Ar pattern
5949b50d902SRodney W. GrimesTrue if the last component of the pathname being examined matches
5959b50d902SRodney W. Grimes.Ar pattern .
596bfd12208SRuslan ErmilovSpecial shell pattern matching characters
597bfd12208SRuslan Ermilov.Dq ( Li \&[ ,
598bfd12208SRuslan Ermilov.Dq Li \&] ,
599bfd12208SRuslan Ermilov.Dq Li * ,
600bfd12208SRuslan Ermilovand
601bfd12208SRuslan Ermilov.Dq Li \&? )
6029b50d902SRodney W. Grimesmay be used as part of
6039b50d902SRodney W. Grimes.Ar pattern .
6049b50d902SRodney W. GrimesThese characters may be matched explicitly by escaping them with a
605bfd12208SRuslan Ermilovbackslash
606bfd12208SRuslan Ermilov.Pq Dq Li \e .
6079b50d902SRodney W. Grimes.It Ic -newer Ar file
6089b50d902SRodney W. GrimesTrue if the current file has a more recent last modification time than
6099b50d902SRodney W. Grimes.Ar file .
610bfd12208SRuslan Ermilov.It Ic -newer Ns Ar X Ns Ar Y Ar file
611bfd12208SRuslan ErmilovTrue if the current file has a more recent last access time
612fbccd9dbSRuslan Ermilov.Pq Ar X Ns = Ns Cm a ,
61331d53425SCeri Daviesinode creation time
614fbccd9dbSRuslan Ermilov.Pq Ar X Ns = Ns Cm B ,
615bfd12208SRuslan Ermilovchange time
616fbccd9dbSRuslan Ermilov.Pq Ar X Ns = Ns Cm c ,
617bfd12208SRuslan Ermilovor modification time
618fbccd9dbSRuslan Ermilov.Pq Ar X Ns = Ns Cm m
619bfd12208SRuslan Ermilovthan the last access time
620fbccd9dbSRuslan Ermilov.Pq Ar Y Ns = Ns Cm a ,
62131d53425SCeri Daviesinode creation time
622fbccd9dbSRuslan Ermilov.Pq Ar Y Ns = Ns Cm B ,
623bfd12208SRuslan Ermilovchange time
624fbccd9dbSRuslan Ermilov.Pq Ar Y Ns = Ns Cm c ,
625bfd12208SRuslan Ermilovor modification time
626fbccd9dbSRuslan Ermilov.Pq Ar Y Ns = Ns Cm m
627bfd12208SRuslan Ermilovof
628ea92232aSPoul-Henning Kamp.Ar file .
629ea92232aSPoul-Henning KampIn addition, if
630bfd12208SRuslan Ermilov.Ar Y Ns = Ns Cm t ,
631ea92232aSPoul-Henning Kampthen
632ea92232aSPoul-Henning Kamp.Ar file
633ea92232aSPoul-Henning Kampis instead interpreted as a direct date specification of the form
634ea92232aSPoul-Henning Kampunderstood by
635ea92232aSPoul-Henning Kamp.Xr cvs 1 .
636ea92232aSPoul-Henning KampNote that
637ea92232aSPoul-Henning Kamp.Ic -newermm
638ea92232aSPoul-Henning Kampis equivalent to
639ea92232aSPoul-Henning Kamp.Ic -newer .
6409b50d902SRodney W. Grimes.It Ic -nogroup
6419b50d902SRodney W. GrimesTrue if the file belongs to an unknown group.
64246b993ffSWarner Losh.It Ic -noignore_readdir_race
64340072dc2SJilles TjoelkerTurn off the effect of
64440072dc2SJilles Tjoelker.Ic -ignore_readdir_race .
64540072dc2SJilles TjoelkerThis is default behaviour.
64646b993ffSWarner Losh.It Ic -noleaf
64746b993ffSWarner LoshThis option is for GNU find compatibility.
64846b993ffSWarner LoshIn GNU find it disables an optimization not relevant to
64981b295a1SEitan Adler.Nm ,
65046b993ffSWarner Loshso it is ignored.
651208691fcSRuslan Ermilov.It Ic -nouser
652208691fcSRuslan ErmilovTrue if the file belongs to an unknown user.
653c93e83feSRuslan Ermilov.It Ic -ok Ar utility Oo Ar argument ... Oc Li \&;
654208691fcSRuslan ErmilovThe
655208691fcSRuslan Ermilov.Ic -ok
656208691fcSRuslan Ermilovprimary is identical to the
657208691fcSRuslan Ermilov.Ic -exec
658208691fcSRuslan Ermilovprimary with the exception that
659208691fcSRuslan Ermilov.Nm
660208691fcSRuslan Ermilovrequests user affirmation for the execution of the
661208691fcSRuslan Ermilov.Ar utility
662208691fcSRuslan Ermilovby printing
663208691fcSRuslan Ermilova message to the terminal and reading a response.
66439c59153SRuslan ErmilovIf the response is not affirmative
66539c59153SRuslan Ermilov.Ql ( y
666ef6c7764STim J. Robbinsin the
667ef6c7764STim J. Robbins.Dq Li POSIX
668ef6c7764STim J. Robbinslocale),
669208691fcSRuslan Ermilovthe command is not executed and the
670208691fcSRuslan Ermilovvalue of the
671208691fcSRuslan Ermilov.Ic -ok
672208691fcSRuslan Ermilovexpression is false.
673c93e83feSRuslan Ermilov.It Ic -okdir Ar utility Oo Ar argument ... Oc Li \&;
674208691fcSRuslan ErmilovThe
675208691fcSRuslan Ermilov.Ic -okdir
676208691fcSRuslan Ermilovprimary is identical to the
677208691fcSRuslan Ermilov.Ic -execdir
678208691fcSRuslan Ermilovprimary with the same exception as described for the
679208691fcSRuslan Ermilov.Ic -ok
680208691fcSRuslan Ermilovprimary.
6819b50d902SRodney W. Grimes.It Ic -path Ar pattern
6829b50d902SRodney W. GrimesTrue if the pathname being examined matches
6839b50d902SRodney W. Grimes.Ar pattern .
684bfd12208SRuslan ErmilovSpecial shell pattern matching characters
685bfd12208SRuslan Ermilov.Dq ( Li \&[ ,
686bfd12208SRuslan Ermilov.Dq Li \&] ,
687bfd12208SRuslan Ermilov.Dq Li * ,
688bfd12208SRuslan Ermilovand
689bfd12208SRuslan Ermilov.Dq Li \&? )
6909b50d902SRodney W. Grimesmay be used as part of
6919b50d902SRodney W. Grimes.Ar pattern .
6929b50d902SRodney W. GrimesThese characters may be matched explicitly by escaping them with a
693bfd12208SRuslan Ermilovbackslash
694bfd12208SRuslan Ermilov.Pq Dq Li \e .
695bfd12208SRuslan ErmilovSlashes
696bfd12208SRuslan Ermilov.Pq Dq Li /
697bfd12208SRuslan Ermilovare treated as normal characters and do not have to be
6989b50d902SRodney W. Grimesmatched explicitly.
6997fd5ee41SRuslan Ermilov.It Ic -perm Oo Cm - Ns | Ns Cm + Oc Ns Ar mode
7009b50d902SRodney W. GrimesThe
7019b50d902SRodney W. Grimes.Ar mode
7029b50d902SRodney W. Grimesmay be either symbolic (see
7039b50d902SRodney W. Grimes.Xr chmod 1 )
7049b50d902SRodney W. Grimesor an octal number.
7057fd5ee41SRuslan ErmilovIf the
7067fd5ee41SRuslan Ermilov.Ar mode
7077fd5ee41SRuslan Ermilovis symbolic, a starting value of zero is assumed and the
7087fd5ee41SRuslan Ermilov.Ar mode
7097fd5ee41SRuslan Ermilovsets or clears permissions without regard to the process' file mode
7109b50d902SRodney W. Grimescreation mask.
7117fd5ee41SRuslan ErmilovIf the
7127fd5ee41SRuslan Ermilov.Ar mode
7137fd5ee41SRuslan Ermilovis octal, only bits 07777
714bfd12208SRuslan Ermilov.Pq Dv S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO
7159b50d902SRodney W. Grimesof the file's mode bits participate
7169b50d902SRodney W. Grimesin the comparison.
7177fd5ee41SRuslan ErmilovIf the
7187fd5ee41SRuslan Ermilov.Ar mode
7197fd5ee41SRuslan Ermilovis preceded by a dash
720bfd12208SRuslan Ermilov.Pq Dq Li - ,
7219b88faecSRuslan Ermilovthis primary evaluates to true
7227fd5ee41SRuslan Ermilovif at least all of the bits in the
7237fd5ee41SRuslan Ermilov.Ar mode
7247fd5ee41SRuslan Ermilovare set in the file's mode bits.
7257fd5ee41SRuslan ErmilovIf the
7267fd5ee41SRuslan Ermilov.Ar mode
7277fd5ee41SRuslan Ermilovis preceded by a plus
728bfd12208SRuslan Ermilov.Pq Dq Li + ,
7299b88faecSRuslan Ermilovthis primary evaluates to true
7307fd5ee41SRuslan Ermilovif any of the bits in the
7317fd5ee41SRuslan Ermilov.Ar mode
7327fd5ee41SRuslan Ermilovare set in the file's mode bits.
7339d2796c3SOllivier RobertOtherwise, this primary evaluates to true if
7347fd5ee41SRuslan Ermilovthe bits in the
7357fd5ee41SRuslan Ermilov.Ar mode
7367fd5ee41SRuslan Ermilovexactly match the file's mode bits.
737bfd12208SRuslan ErmilovNote, the first character of a symbolic mode may not be a dash
738bfd12208SRuslan Ermilov.Pq Dq Li - .
7399b50d902SRodney W. Grimes.It Ic -print
7409b50d902SRodney W. GrimesThis primary always evaluates to true.
7419b50d902SRodney W. GrimesIt prints the pathname of the current file to standard output.
742841484cdSPeter WemmIf none of
743bfd12208SRuslan Ermilov.Ic -exec , -ls , -print0 ,
7449b50d902SRodney W. Grimesor
745bfd12208SRuslan Ermilov.Ic -ok
746841484cdSPeter Wemmis specified, the given expression shall be effectively replaced by
747bfd12208SRuslan Ermilov.Cm \&( Ar "given expression" Cm \&) Ic -print .
7487cd23434SGarrett Wollman.It Ic -print0
7497cd23434SGarrett WollmanThis primary always evaluates to true.
750fbe0d04aSMasafumi Max NAKANEIt prints the pathname of the current file to standard output, followed by an
751cb29445aSRuslan Ermilov.Tn ASCII
752cb29445aSRuslan Ermilov.Dv NUL
7537cd23434SGarrett Wollmancharacter (character code 0).
7549b50d902SRodney W. Grimes.It Ic -prune
7559b50d902SRodney W. GrimesThis primary always evaluates to true.
7569b50d902SRodney W. GrimesIt causes
7578fe908efSRuslan Ermilov.Nm
7589b50d902SRodney W. Grimesto not descend into the current file.
7599b50d902SRodney W. GrimesNote, the
7609b50d902SRodney W. Grimes.Ic -prune
7619b50d902SRodney W. Grimesprimary has no effect if the
7629b50d902SRodney W. Grimes.Fl d
7639b50d902SRodney W. Grimesoption was specified.
7649168a75aSDag-Erling Smørgrav.It Ic -quit
7659168a75aSDag-Erling SmørgravCauses
7669168a75aSDag-Erling Smørgrav.Nm
767baf02306SDag-Erling Smørgravto immediately terminate successfully.
768208691fcSRuslan Ermilov.It Ic -regex Ar pattern
769208691fcSRuslan ErmilovTrue if the whole path of the file matches
770208691fcSRuslan Ermilov.Ar pattern
771208691fcSRuslan Ermilovusing regular expression.
772208691fcSRuslan ErmilovTo match a file named
773208691fcSRuslan Ermilov.Dq Pa ./foo/xyzzy ,
774208691fcSRuslan Ermilovyou can use the regular expression
775208691fcSRuslan Ermilov.Dq Li ".*/[xyz]*"
776208691fcSRuslan Ermilovor
777208691fcSRuslan Ermilov.Dq Li ".*/foo/.*" ,
778208691fcSRuslan Ermilovbut not
779208691fcSRuslan Ermilov.Dq Li xyzzy
780208691fcSRuslan Ermilovor
781208691fcSRuslan Ermilov.Dq Li /foo/ .
78246b993ffSWarner Losh.It Ic -samefile Ar name
78346b993ffSWarner LoshTrue if the file is a hard link to
78446b993ffSWarner Losh.Ar name .
78546b993ffSWarner LoshIf the command option
78646b993ffSWarner Losh.Ic -L
78746b993ffSWarner Loshis specified, it is also true if the file is a symbolic link and
78846b993ffSWarner Loshpoints to
78946b993ffSWarner Losh.Ar name .
7905a890aacSKirill Ponomarev.It Ic -size Ar n Ns Op Cm ckMGTP
79154874bb6SRuslan ErmilovTrue if the file's size, rounded up, in 512-byte blocks is
7929b50d902SRodney W. Grimes.Ar n .
7939b50d902SRodney W. GrimesIf
7949b50d902SRodney W. Grimes.Ar n
795bfd12208SRuslan Ermilovis followed by a
796bfd12208SRuslan Ermilov.Cm c ,
797bfd12208SRuslan Ermilovthen the primary is true if the
7989b50d902SRodney W. Grimesfile's size is
7999b50d902SRodney W. Grimes.Ar n
800bfd12208SRuslan Ermilovbytes (characters).
8015a890aacSKirill PonomarevSimilarly if
8025a890aacSKirill Ponomarev.Ar n
8035a890aacSKirill Ponomarevis followed by a scale indicator then the file's size is compared to
8045a890aacSKirill Ponomarev.Ar n
8055a890aacSKirill Ponomarevscaled as:
8065a890aacSKirill Ponomarev.Pp
8075a890aacSKirill Ponomarev.Bl -tag -width indent -compact
8085a890aacSKirill Ponomarev.It Cm k
8095a890aacSKirill Ponomarevkilobytes (1024 bytes)
8105a890aacSKirill Ponomarev.It Cm M
8115a890aacSKirill Ponomarevmegabytes (1024 kilobytes)
8125a890aacSKirill Ponomarev.It Cm G
8135a890aacSKirill Ponomarevgigabytes (1024 megabytes)
8145a890aacSKirill Ponomarev.It Cm T
8155a890aacSKirill Ponomarevterabytes (1024 gigabytes)
8165a890aacSKirill Ponomarev.It Cm P
8175a890aacSKirill Ponomarevpetabytes (1024 terabytes)
8185a890aacSKirill Ponomarev.El
819*9ed0c92cSDavid Malone.It Ic -sparse
820*9ed0c92cSDavid MaloneTrue if the current file is sparse,
821*9ed0c92cSDavid Malonei.e. has fewer blocks allocated than expected based on its size in bytes.
822*9ed0c92cSDavid MaloneThis might also match files that have been compressed by the filesystem.
8239b50d902SRodney W. Grimes.It Ic -type Ar t
8249b50d902SRodney W. GrimesTrue if the file is of the specified type.
8259b50d902SRodney W. GrimesPossible file types are as follows:
8269b50d902SRodney W. Grimes.Pp
827bfd12208SRuslan Ermilov.Bl -tag -width indent -compact
8289b50d902SRodney W. Grimes.It Cm b
8299b50d902SRodney W. Grimesblock special
8309b50d902SRodney W. Grimes.It Cm c
8319b50d902SRodney W. Grimescharacter special
8329b50d902SRodney W. Grimes.It Cm d
8339b50d902SRodney W. Grimesdirectory
8349b50d902SRodney W. Grimes.It Cm f
8359b50d902SRodney W. Grimesregular file
8369b50d902SRodney W. Grimes.It Cm l
8379b50d902SRodney W. Grimessymbolic link
8389b50d902SRodney W. Grimes.It Cm p
8399b50d902SRodney W. GrimesFIFO
8409b50d902SRodney W. Grimes.It Cm s
8419b50d902SRodney W. Grimessocket
8429b50d902SRodney W. Grimes.El
84346b993ffSWarner Losh.It Ic -uid Ar uname
84446b993ffSWarner LoshThe same thing as
84546b993ffSWarner Losh.Ar -user Ar uname
84646b993ffSWarner Loshfor compatibility with GNU find.
84746b993ffSWarner LoshGNU find imposes a restriction that
84846b993ffSWarner Losh.Ar uname
84946b993ffSWarner Loshis numeric, while
85081b295a1SEitan Adler.Nm
85146b993ffSWarner Loshdoes not.
8529b50d902SRodney W. Grimes.It Ic -user Ar uname
8539b50d902SRodney W. GrimesTrue if the file belongs to the user
8549b50d902SRodney W. Grimes.Ar uname .
8559b50d902SRodney W. GrimesIf
8569b50d902SRodney W. Grimes.Ar uname
8579b50d902SRodney W. Grimesis numeric and there is no such user name, then
8589b50d902SRodney W. Grimes.Ar uname
859bfd12208SRuslan Ermilovis treated as a user ID.
86046b993ffSWarner Losh.It Ic -wholename Ar pattern
86146b993ffSWarner LoshThe same thing as
86246b993ffSWarner Losh.Ic -path ,
86346b993ffSWarner Loshfor GNU find compatibility.
8649b50d902SRodney W. Grimes.El
8659b50d902SRodney W. Grimes.Sh OPERATORS
8669b50d902SRodney W. GrimesThe primaries may be combined using the following operators.
8679b50d902SRodney W. GrimesThe operators are listed in order of decreasing precedence.
868bfd12208SRuslan Ermilov.Pp
869fbccd9dbSRuslan Ermilov.Bl -tag -width indent -compact
8700c101fb2SJoseph Koshy.It Cm \&( Ar expression Cm \&)
8719b50d902SRodney W. GrimesThis evaluates to true if the parenthesized expression evaluates to
8729b50d902SRodney W. Grimestrue.
8739b50d902SRodney W. Grimes.Pp
8740c101fb2SJoseph Koshy.It Cm \&! Ar expression
8754a0193d3SJuli Mallett.It Cm -not Ar expression
8769b50d902SRodney W. GrimesThis is the unary
8779b50d902SRodney W. Grimes.Tn NOT
8789b50d902SRodney W. Grimesoperator.
8799b50d902SRodney W. GrimesIt evaluates to true if the expression is false.
8809b50d902SRodney W. Grimes.Pp
88146b993ffSWarner Losh.It Cm -false
88246b993ffSWarner LoshAlways false.
88346b993ffSWarner Losh.It Cm -true
88446b993ffSWarner LoshAlways true.
88546b993ffSWarner Losh.Pp
8869b50d902SRodney W. Grimes.It Ar expression Cm -and Ar expression
8879b50d902SRodney W. Grimes.It Ar expression expression
8889b50d902SRodney W. GrimesThe
8899b50d902SRodney W. Grimes.Cm -and
8909b50d902SRodney W. Grimesoperator is the logical
8919b50d902SRodney W. Grimes.Tn AND
8929b50d902SRodney W. Grimesoperator.
8939b50d902SRodney W. GrimesAs it is implied by the juxtaposition of two expressions it does not
8949b50d902SRodney W. Grimeshave to be specified.
8959b50d902SRodney W. GrimesThe expression evaluates to true if both expressions are true.
8969b50d902SRodney W. GrimesThe second expression is not evaluated if the first expression is false.
8979b50d902SRodney W. Grimes.Pp
8989b50d902SRodney W. Grimes.It Ar expression Cm -or Ar expression
8999b50d902SRodney W. GrimesThe
9009b50d902SRodney W. Grimes.Cm -or
9019b50d902SRodney W. Grimesoperator is the logical
9029b50d902SRodney W. Grimes.Tn OR
9039b50d902SRodney W. Grimesoperator.
9049b50d902SRodney W. GrimesThe expression evaluates to true if either the first or the second expression
9059b50d902SRodney W. Grimesis true.
9069b50d902SRodney W. GrimesThe second expression is not evaluated if the first expression is true.
9079b50d902SRodney W. Grimes.El
9089b50d902SRodney W. Grimes.Pp
9099b50d902SRodney W. GrimesAll operands and primaries must be separate arguments to
9108fe908efSRuslan Ermilov.Nm .
9119b50d902SRodney W. GrimesPrimaries which themselves take arguments expect each argument
9129b50d902SRodney W. Grimesto be a separate argument to
9138fe908efSRuslan Ermilov.Nm .
914ef6c7764STim J. Robbins.Sh ENVIRONMENT
915ef6c7764STim J. RobbinsThe
916ef6c7764STim J. Robbins.Ev LANG , LC_ALL , LC_COLLATE , LC_CTYPE , LC_MESSAGES
917ef6c7764STim J. Robbinsand
918ef6c7764STim J. Robbins.Ev LC_TIME
919ef6c7764STim J. Robbinsenvironment variables affect the execution of the
920ef6c7764STim J. Robbins.Nm
921ef6c7764STim J. Robbinsutility as described in
922ef6c7764STim J. Robbins.Xr environ 7 .
9239b50d902SRodney W. Grimes.Sh EXAMPLES
9249b50d902SRodney W. GrimesThe following examples are shown as given to the shell:
925bfd12208SRuslan Ermilov.Bl -tag -width indent
9269b50d902SRodney W. Grimes.It Li "find / \e! -name \*q*.c\*q -print"
927bfd12208SRuslan ErmilovPrint out a list of all the files whose names do not end in
928bfd12208SRuslan Ermilov.Pa .c .
9299b50d902SRodney W. Grimes.It Li "find / -newer ttt -user wnj -print"
930bfd12208SRuslan ErmilovPrint out a list of all the files owned by user
931bfd12208SRuslan Ermilov.Dq wnj
932bfd12208SRuslan Ermilovthat are newer
933bfd12208SRuslan Ermilovthan the file
934bfd12208SRuslan Ermilov.Pa ttt .
9359b50d902SRodney W. Grimes.It Li "find / \e! \e( -newer ttt -user wnj \e) -print"
936bfd12208SRuslan ErmilovPrint out a list of all the files which are not both newer than
937bfd12208SRuslan Ermilov.Pa ttt
938bfd12208SRuslan Ermilovand owned by
939bfd12208SRuslan Ermilov.Dq wnj .
9409b50d902SRodney W. Grimes.It Li "find / \e( -newer ttt -or -user wnj \e) -print"
941bfd12208SRuslan ErmilovPrint out a list of all the files that are either owned by
942bfd12208SRuslan Ermilov.Dq wnj
943bfd12208SRuslan Ermilovor that are newer than
944bfd12208SRuslan Ermilov.Pa ttt .
945e578c242STom Rhodes.It Li "find / -newerct '1 minute ago' -print"
946ea92232aSPoul-Henning KampPrint out a list of all the files whose inode change time is more
947ea92232aSPoul-Henning Kamprecent than the current time minus one minute.
94854874bb6SRuslan Ermilov.It Li "find / -type f -exec echo {} \e;"
949e578c242STom RhodesUse the
950e578c242STom Rhodes.Xr echo 1
951e578c242STom Rhodescommand to print out a list of all the files.
952a05cb852SJilles Tjoelker.It Li "find -L /usr/ports/packages -type l -exec rm -- {} +"
9531c832963SOliver EikemeierDelete all broken symbolic links in
9541c832963SOliver Eikemeier.Pa /usr/ports/packages .
9551c832963SOliver Eikemeier.It Li "find /usr/src -name CVS -prune -o -depth +6 -print"
9561c832963SOliver EikemeierFind files and directories that are at least seven levels deep
9571c832963SOliver Eikemeierin the working directory
9581c832963SOliver Eikemeier.Pa /usr/src .
9591c832963SOliver Eikemeier.It Li "find /usr/src -name CVS -prune -o -mindepth 7 -print"
9601c832963SOliver EikemeierIs not equivalent to the previous example, since
9611c832963SOliver Eikemeier.Ic -prune
9621c832963SOliver Eikemeieris not evaluated below level seven.
9639b50d902SRodney W. Grimes.El
964e578c242STom Rhodes.Sh COMPATIBILITY
965e578c242STom RhodesThe
966e578c242STom Rhodes.Ic -follow
96747d91ba3SDag-Erling Smørgravprimary is deprecated; the
96847d91ba3SDag-Erling Smørgrav.Fl L
96947d91ba3SDag-Erling Smørgravoption should be used instead.
97047d91ba3SDag-Erling SmørgravSee the
97147d91ba3SDag-Erling Smørgrav.Sx STANDARDS
97247d91ba3SDag-Erling Smørgravsection below for details.
9739b50d902SRodney W. Grimes.Sh SEE ALSO
974567664c4SOllivier Robert.Xr chflags 1 ,
9759b50d902SRodney W. Grimes.Xr chmod 1 ,
976ea92232aSPoul-Henning Kamp.Xr cvs 1 ,
9779b50d902SRodney W. Grimes.Xr locate 1 ,
978d740b7c7SPawel Jakub Dawidek.Xr lsvfs 1 ,
97941cbb624SJoseph Koshy.Xr whereis 1 ,
98041cbb624SJoseph Koshy.Xr which 1 ,
981a8d50686STom Rhodes.Xr xargs 1 ,
9829b50d902SRodney W. Grimes.Xr stat 2 ,
98353e87059STom Rhodes.Xr acl 3 ,
9849b50d902SRodney W. Grimes.Xr fts 3 ,
9859b50d902SRodney W. Grimes.Xr getgrent 3 ,
9869b50d902SRodney W. Grimes.Xr getpwent 3 ,
9879b50d902SRodney W. Grimes.Xr strmode 3 ,
98894ad6032SRuslan Ermilov.Xr re_format 7 ,
9899b50d902SRodney W. Grimes.Xr symlink 7
9909b50d902SRodney W. Grimes.Sh STANDARDS
9919b50d902SRodney W. GrimesThe
9928fe908efSRuslan Ermilov.Nm
9939b50d902SRodney W. Grimesutility syntax is a superset of the syntax specified by the
9941c832963SOliver Eikemeier.St -p1003.1-2001
9959b50d902SRodney W. Grimesstandard.
9969b50d902SRodney W. Grimes.Pp
9971c832963SOliver EikemeierAll the single character options except
998fbccd9dbSRuslan Ermilov.Fl H
9991c832963SOliver Eikemeierand
1000fbccd9dbSRuslan Ermilov.Fl L
1001659a728eSCeri Daviesas well as
1002659a728eSCeri Davies.Ic -amin , -anewer , -cmin , -cnewer , -delete , -empty , -fstype ,
1003659a728eSCeri Davies.Ic -iname , -inum , -iregex , -ls , -maxdepth , -mindepth , -mmin ,
1004*9ed0c92cSDavid Malone.Ic -path , -print0 , -regex, -sparse
1005440a24d8SCeri Daviesand all of the
1006fbccd9dbSRuslan Ermilov.Ic -B*
1007440a24d8SCeri Daviesbirthtime related primaries are extensions to
10081c832963SOliver Eikemeier.St -p1003.1-2001 .
1009f6e4fb22SSteve Price.Pp
10109b50d902SRodney W. GrimesHistorically, the
101147d91ba3SDag-Erling Smørgrav.Fl d , L
10129b50d902SRodney W. Grimesand
10139b50d902SRodney W. Grimes.Fl x
1014bfd12208SRuslan Ermilovoptions were implemented using the primaries
1015bfd12208SRuslan Ermilov.Ic -depth , -follow ,
1016bfd12208SRuslan Ermilovand
1017bfd12208SRuslan Ermilov.Ic -xdev .
10189b50d902SRodney W. GrimesThese primaries always evaluated to true.
10199b50d902SRodney W. GrimesAs they were really global variables that took effect before the traversal
10209b50d902SRodney W. Grimesbegan, some legal expressions could have unexpected results.
1021bfd12208SRuslan ErmilovAn example is the expression
1022bfd12208SRuslan Ermilov.Ic -print Cm -o Ic -depth .
1023bfd12208SRuslan ErmilovAs
1024bfd12208SRuslan Ermilov.Ic -print
1025bfd12208SRuslan Ermilovalways evaluates to true, the standard order of evaluation
1026bfd12208SRuslan Ermilovimplies that
1027bfd12208SRuslan Ermilov.Ic -depth
1028bfd12208SRuslan Ermilovwould never be evaluated.
10299b50d902SRodney W. GrimesThis is not the case.
10309b50d902SRodney W. Grimes.Pp
1031bfd12208SRuslan ErmilovThe operator
1032bfd12208SRuslan Ermilov.Cm -or
1033bfd12208SRuslan Ermilovwas implemented as
1034bfd12208SRuslan Ermilov.Cm -o ,
1035bfd12208SRuslan Ermilovand the operator
1036bfd12208SRuslan Ermilov.Cm -and
1037bfd12208SRuslan Ermilovwas implemented as
1038bfd12208SRuslan Ermilov.Cm -a .
10399b50d902SRodney W. Grimes.Pp
10409b50d902SRodney W. GrimesHistoric implementations of the
1041bfd12208SRuslan Ermilov.Ic -exec
10429b50d902SRodney W. Grimesand
1043bfd12208SRuslan Ermilov.Ic -ok
1044bfd12208SRuslan Ermilovprimaries did not replace the string
1045bfd12208SRuslan Ermilov.Dq Li {}
1046bfd12208SRuslan Ermilovin the utility name or the
10479b50d902SRodney W. Grimesutility arguments if it had preceding or following non-whitespace characters.
10489b50d902SRodney W. GrimesThis version replaces it no matter where in the utility name or arguments
10499b50d902SRodney W. Grimesit appears.
10507c1d4b3aSAkinori MUSHA.Pp
10517c1d4b3aSAkinori MUSHAThe
10527c1d4b3aSAkinori MUSHA.Fl E
105347d91ba3SDag-Erling Smørgravoption was inspired by the equivalent
10547c1d4b3aSAkinori MUSHA.Xr grep 1
10557c1d4b3aSAkinori MUSHAand
105647d91ba3SDag-Erling Smørgrav.Xr sed 1
105747d91ba3SDag-Erling Smørgravoptions.
1058ad487600SColin Percival.Sh HISTORY
1059ad487600SColin PercivalA
1060ad487600SColin Percival.Nm
1061ad487600SColin Percivalcommand appeared in
1062ad487600SColin Percival.At v1 .
10639b50d902SRodney W. Grimes.Sh BUGS
10649b50d902SRodney W. GrimesThe special characters used by
10658fe908efSRuslan Ermilov.Nm
10669b50d902SRodney W. Grimesare also special characters to many shell programs.
1067bfd12208SRuslan ErmilovIn particular, the characters
1068bfd12208SRuslan Ermilov.Dq Li * ,
1069bfd12208SRuslan Ermilov.Dq Li \&[ ,
1070bfd12208SRuslan Ermilov.Dq Li \&] ,
1071bfd12208SRuslan Ermilov.Dq Li \&? ,
1072bfd12208SRuslan Ermilov.Dq Li \&( ,
1073bfd12208SRuslan Ermilov.Dq Li \&) ,
1074bfd12208SRuslan Ermilov.Dq Li \&! ,
1075bfd12208SRuslan Ermilov.Dq Li \e
1076bfd12208SRuslan Ermilovand
1077bfd12208SRuslan Ermilov.Dq Li \&;
1078bfd12208SRuslan Ermilovmay have to be escaped from the shell.
10799b50d902SRodney W. Grimes.Pp
10809b50d902SRodney W. GrimesAs there is no delimiter separating options and file names or file
10819b50d902SRodney W. Grimesnames and the
10829b50d902SRodney W. Grimes.Ar expression ,
1083bfd12208SRuslan Ermilovit is difficult to specify files named
1084bfd12208SRuslan Ermilov.Pa -xdev
1085bfd12208SRuslan Ermilovor
1086bfd12208SRuslan Ermilov.Pa \&! .
10879b50d902SRodney W. GrimesThese problems are handled by the
10889b50d902SRodney W. Grimes.Fl f
10899b50d902SRodney W. Grimesoption and the
10909b50d902SRodney W. Grimes.Xr getopt 3
1091bfd12208SRuslan Ermilov.Dq Fl Fl
1092bfd12208SRuslan Ermilovconstruct.
1093abacbbbfSPeter Wemm.Pp
1094abacbbbfSPeter WemmThe
1095abacbbbfSPeter Wemm.Ic -delete
109656f7a840SBill Fumerolaprimary does not interact well with other options that cause the file system
1097abacbbbfSPeter Wemmtree traversal options to be changed.
1098ad487600SColin Percival.Pp
10994f45d811STim J. RobbinsThe
1100dfef91e9SColin Percival.Ic -mindepth
1101dfef91e9SColin Percivaland
1102dfef91e9SColin Percival.Ic -maxdepth
11032cb640f6SColin Percivalprimaries are actually global options (as documented above).
11042cb640f6SColin PercivalThey should
1105dfef91e9SColin Percivalprobably be replaced by options which look like options.
1106