| Skip Navigation Links | |
| Exit Print View | |
|
Sun QFS and Sun Storage Archive Manager 5.3 Reference Manual Sun QFS and Sun Storage Archive Manager 5.3 Information Library |
1. User Commands (Man Pages Section 1)
2. Maintenance Commands (Man Pages Section 1M)
3. Library Functions (Man Pages Section 3)
4. Library Functions (Man Pages Section 3X)
5. File Formats (Man Pages Section 4)
NAME
sfind - Searches for files in a directory hierarchy
SYNOPSIS
sfind [path ...] [expression]
AVAILABILITY
SUNWqfs
SUNWsamfs
DESCRIPTION
The sfind(1) command contains Oracle Corporation extensions to
the GNU find(1) command. The extensions support the
features of files that reside in Sun QFS or SAM-QFS file
systems.
The sfind command searches the directory tree rooted at each
path by evaluating the specified expression from left to
right, according to the rules of precedence. The search
continues until the outcome is known (the left hand side is
false for and operations, true for or), at which point the
sfind command moves on to the next file name. For more
information on the rules of precedence, see the OPERATORS
section of this man page.
The Oracle Corporation extensions to this command include the
addition of several tests that reference characteristics
specific to files that reside in a Sun QFS or SAM-QFS file
system. These tests are as follows:
-admin_id n, -any_copy_archive_i, -any_copy_d, -any_copy_r,
-any_copy_s, -any_copy_u, -any_copy_v, -archdone,
-archive_C, -archive_d, -archive_I, -archive_n, -archived,
-archpos n, -archpos1 n, -archpos2 n, -archpos3 n, -archpos4
n, -copies n, -copy n, -copy_archive_i n, -copy_d n,
-copy_r n, -copy_s n, -copy_u n, -copy_v n, -damaged,
-is_setfa_D, -is_setfa_g, -is_setfa_s, -mt media_type,
-mt1 media_type, -mt2 media_type, -mt3 media_type,
-mt4 media_type, -offline, -online, -ovfl, -ovfl1, -ovfl2,
-ovfl3, -ovfl4, -partial_on, -project pname, -release_a,
-release_d, -release_n, -release_p, -rmedia, -rmin n,
-rtime n, -sections n, -sections1 n, -sections2 n,
-sections3 n, -sections4 n, -segment n, -segment_a,
-segment_i, -segment_s, -segmented, -segments n, -setfa_g n,
-setfa_s n, -ssum_g, -ssum_u, -ssum_v, -stage_a, -stage_d,
-stage_n, -verify, -vsn pattern, -vsn1 pattern,
-vsn2 pattern, -vsn3 pattern, -vsn4 pattern, -xmin n,
-xtime n.
For a comprehensive lists of tests, see the TESTS section of
this man page.
This command accepts the following options:
path Specifies the path to the directory to be
searched. If no path is specified, the sfind
command searches the current directory. If a path
is specified, the path must appear on the command
line to the left of the expression argument. If
specifying more than one path, separate each with
a space character.
expression
An expression composed from arguments described in
the OPTIONS, TESTS, ACTIONS, and OPERATORS
sections of this man page. If no expression is
specified, -print is used.
The expression must begin with one of the
following characters:
- A dash (-)
- An opening parenthesis (()
- A closing parenthesis ())
- A comma (,)
- An exclamation point (!)
Any arguments to the left of the preceding
character list are assumed to be paths to search.
Any arguments to the right of the preceding
character list are assumed to be part of the
expression.
An expression can be constructed from the
following:
o Options, which affect overall operation rather
than the processing of a specific file.
Options always return true. For a list of
possible options, see the OPTIONS section.
o Tests, which return a true or false value. For
a list of possible tests, see the TESTS
section.
o Actions, which have side effects. Actions
return a true or false value. If expression
contains no actions other than -prune, the
-print action is performed on all files for
which the expression is true. For a list of
possible actions, see the ACTIONS section.
o Operators, which separate options, tests, and
actions. For a list of possible operators, see
the OPERATORS section. The -and operator is
assumed if no operator is specified.
OPTIONS
An expression can contain one or more options. The options
always return true. The available options are as follows:
option Action
-daystart Measures times for -amin, -atime, -cmin, -ctime,
-mmin, and -mtime from the beginning of today
rather than from 24 hours ago.
-depth Processes each directory's contents before the
directory itself.
-follow Dereferences symbolic links. Implies the -noleaf
option. For more information, see the -noleaf
information that follows in this list.
-maxdepth levels
Descends at most levels levels of directories
below the command line arguments. The levels
argument muse be a nonnegative integer. If you
specify -maxdepth 0, the tests and actions are
applied to the command line arguments only. For
more information, see the TESTS and ACTIONS
sections of this man page.
-mindepth levels
Prevents any tests or actions from being performed
at levels less than levels. The levels argument
must be a nonnegative integer. If you specify
-mindepth 1, all files except the command line
arguments are processed. For more information,
see the TESTS and ACTIONS sections of this man
page.
-noleaf Supresses optimization. When specified, the
command does not assume that directories contain 2
fewer subdirectories than their hard link count.
This option is needed when searching file systems
that do not follow the UNIX directory-link
convention. Such file systems include CD-ROM or
MS-DOS file systems or AFS volume mount points.
Each directory on a typical UNIX file system has
at least 2 hard links: its name and its . entry.
If subdirectories are present, each of those has a
.. entry linked to that directory. When the sfind
command examines a directory, after it has statted
2 fewer subdirectories than the directory's link
count, it assumes that the rest of the entries in
the directory are not directories. That is, the
rest of the entries are leaf files in the
directory tree. If only the files' names need to
be examined, there is no need to stat them; this
gives a significant increase in search speed.
-test_segments
For a segmented file, applies sfind tests to each
individual data segment and to the index inode.
If a sfind test returns true for a data segment or
for a segmented file's index inode, sfind writes
the file path, a slash, and the segment number.
The number zero is written for the index inode's
segment number.
The following options always automatically enable
the -test_segments option: -segment n, -segment_i,
-segment_s.
If this option is not specified, and the tests are
applied to a segmented file, then the tests are
applied at the file-level, and they are aggregated
over all data segments.
This option has no effect on test results when
applied to unsegmented files.
For more information, see the TESTS section of
this man page.
-version Writes the sfind command's version number to
standard error.
-ractive If the WORM feature is active writes the path of
files which are retained and the retention period
has not expired.
-rover If the WORM feature is active writes the path of
files whose retention period has expired.
-rafter date
If the WORM feature is active writes the path of
files whose retention period ends after the given
date. The date is specified with traditional
format CCYYMMDDHHMM. CC is the century, YY is the
year, MM is the month, DD is the day, HH is the
hour, and MM is minute(s).
-rremain time
If the WORM feature is active writes the path of
files with retention periods with at least <time>
left. The time is a duration specified as a
combination of years, days, hours, and minutes
given as a string "MyNdOhPm" where M, N, O, P are
arbitrary non-negative integers. y, d, h, m
represent the number of years, days, hours, and
minute(s) for the search.
-rlonger <time>
If the WORM feature is active writes the path of
files with retention periods longer than <time>.
The time is a duration specified as a combination
of years, days, hours, and minutes given as a
string "MyNdOhPm" where M, N, O, P are arbitrary
non-negative integers. y, d, h, m represent the
number of years, days, hours, and minute(s) for
the search.
-rpermanent
If the WORM feature is active writes the path of
files whose retention period is permanent.
-xdev Prevents the command from descending directories
on other file systems.
TESTS
An expression can contain one or more tests. Many tests
accept a numeric argument, n. The numeric arguments can be
specified with a preceding plus sign (+) or minus sign (-),
as follows:
n Format Meaning
+n Greater than n.
-n Less than n.
n Exactly n.
The available tests are as follows:
test Condition
-admin_id n
File has admin id number n.
-amin n File was last accessed n minutes ago.
-anewer file
File was last accessed more recently than file was
modified. The -anewer test affects the -follow
option only if the -follow option comes before (is
to the left of) the -anewer test on the command
line.
-any_copy_archive_i
File's copy is marked to be archived immediately.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode's copy is marked
to be archived immediately or one of the file's
data segment's copy is marked to be archived
immediately.
-any_copy_d
File has an archive copy that is damaged.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy that is damaged or if at least one of the
file's data segments has an archive copy that is
damaged.
-any_copy_r
File has an archive copy marked for rearchiving by
the rearch(1M) command or by the recycler.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy marked for rearchiving or if at least one of
the file's data segments has an archive copy
marked for rearchiving.
-any_copy_s
File has an archive copy that is stale.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy that is stale or if at least one of the
file's data segments has an archive copy that is
stale.
-any_copy_u
File has an unarchived copy.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an unarchived
copy or if at least one of the file's data
segments has an unarchived copy.
-any_copy_v
File has an archive copy that is verified.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy that is verified or if all of the file's data
segments have an archive copy that is verified.
-archdone File has completed archive processing. The
archiver has no further work to do on the file at
this time. Note that this does not mean that the
file has been archived.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true for
a segmented file if and only if all of the file's
data segments have completed archive processing.
This test does not evaluate a segmented file's
index inode to see if it has completed archive
processing.
-archive_C
File has had the equivalent of archive -C run
against it, so the concurrent archiving is
enabled. For more information on the -C option to
the archive(1) command, see the archive(1) man
page.
-archive_d
File has had the equivalent of archive -d run
against it, so the archiver handles it according
to system defaults. For more information on the
-d option to the archive(1) command, see the
archive(1) man page.
-archive_I
File has had the equivalent of archive -I run
against it, so the inconsistent archiving is
supported. For more information on the -I option
to the archive(1) command, see the archive(1) man
page.
-archive_n
File has had the equivalent of archive -n run
against it, so it will never be archived. For
more information on the -n option to the
archive(1) command, see the archive(1) man page.
-archived File is archived.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
all of the file's data segments are archived.
This test does not evaluate a segmented file's
index inode to see if it has been archived. The
following sfind command finds files on /sam6 whose
index inode has been archived:
sfind /sam6 -archived -segment_i -print
The preceeding sfind command identifies only index
inodes that have been archived; it does not yield
any information regarding whether a segmented
file's data segments have been archived.
-archpos n
File has at least one archive copy at position n.
Note that n may be preceded by + or -, and
specified in decimal, or hexadecimal if preceded
by "0x". This position is the position prior to
the decimal point in sls output or the archiver
log. If n is a path starting with "d" or "f" it
is interpreted as a relative path to a disk
archive file.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has at least one archive
copy at position n or if at least one of the
file's data segments has at least one archive copy
at position n.
-archpos1 n
-archpos2 n
-archpos3 n
-archpos4 n
File has the indicated copy number (1-4) at
position n.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has the indicated archive
copy at position n or if at least one of the
file's data segments has the indicated archive
copy at position n.
-atime n File was last accessed n*24 hours ago.
-cmin n File status was last changed n minutes ago.
-cnewer file
File status was last changed more recently than
file was modified. The -cnewer test is affected
by the -follow option only if the -follow option
comes before (is to the left of) the -cnewer test
on the command line.
-copies n File has n archive copies.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
each of the file's data segments have n archive
copies. This test does not evaluate a segmented
file's index inode to see if it has n archive
copies.
-copy n File has an archive copy number n.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
each of the file's data segments have an archive
copy number n. This test does not evaluate a
segmented file's index inode to see if it has an
archive copy number n.
-copy_archive_i n
File's copy n is marked to be archived
immediately.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode's copy n is
marked to be archived immediately or if at least
one of the file's data segment's copy n is marked
to be archived immediately.
-copy_d n File has an archive copy number n that is damaged.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy number n that is damaged or if at least one
of the file's data segments has an archive copy
number n that is damaged.
-copy_r n File has an archive copy number n marked for
rearchiving by the rearch(1M) command or by the
recycler.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy number n marked for rearchiving or if at
least one of the file's data segments has an
archive copy number n marked for rearchiving.
-copy_s n File has a stale archive copy number n.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has a stale
archive copy number n or if at least one of the
file's data segment has a stale archive copy
number n.
-copy_u n File's archive copy number n is unarchived by the
unarchive(1M) command.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode's archive copy
number n is unarchived or if at least one of the
file's data segment's archive copy number n is
unarchived.
-copy_v n File has an archive copy number n that is
verified.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the segmented file's index inode has an archive
copy number n that is verified or if all of the
file's data segments have an archive copy number n
that is verified.
-ctime n File status was last changed n*24 hours ago.
-damaged File is damaged.
-empty File is empty and is either a regular file or a
directory.
-false Always false.
-fstype type
File is on a file system of type type. Possible
file system types differ among the different UNIX
versions and include, but are not limited to, the
following: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K,
and S52K. You can use the -printf action with its
%F argument to obtain the types of your file
systems. For more information on -printf, see the
ACTIONS section.
-gid n File has n for its numeric group ID.
-group gname
File belongs to group gname. A numeric group ID
is allowed.
-ilname pattern
Like -lname, but the match is case insensitive.
-iname pattern
Like -name, but the match is case insensitive.
For example, a pattern of fo* and F?? both match
file names Foo, FOO, foo, fOo, and so on.
-inum n File has inode number n.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
any of the file's data segments or its index inode
have inode number n.
-ipath pattern
Like -path, but the match is case insensitive.
-iregex pattern
Like -regex, but the match is case insensitive.
-is_setfa_D
File has had its directio set using the setfa -D
command. For more information on the setfa -D
command, see the setfa(1) man page.
-is_setfa_g
File has had its stripe group number set using the
setfa -g command. For more information on the
setfa -g command, see the setfa(1) man page.
-is_setfa_s
File has had its stripe width set using the
setfa -s command. For more information on the
setfa -s command, see the setfa(1) man page.
-links n File has n links.
-lname pattern
File is a symbolic link whose contents match shell
pattern pattern. The metacharacters do not treat
the slash character (/) or the period character
(.) specially.
-mmin n File's data was last modified n minutes ago.
-mt media_type
File has an archive copy on the specified
media_type on any copy.
-mt1 media_type
-mt2 media_type
-mt3 media_type
-mt4 media_type
File has an archive copy on the specified
media_type for the indicated copy number (1-4).
-mtime n File's data was last modified n*24 hours ago.
-name pattern
Base of file name (the path with the leading
directories removed) matches shell pattern
pattern. The metacharacters (*, ?, and [ ]) do
not match a . at the start of the base name. To
ignore a directory and the files under it, use the
-prune action. For more information, see the
example in the -path test in this list.
-newer file
File was modified more recently than file. The
-follow option affects the -newer test only if the
-follow option comes before (is to the left of)
the -newer test on the command line.
-nouser No user corresponds to the file's numeric user ID.
-nogroup No group corresponds to the file's numeric group
ID.
-offline File is offline.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode is offline or if all of the
file's data segments are offline.
-online File is online.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode is online and all of the
file's data segments are online.
-ovfl File has at least one archive copy that has
sections on more than one VSN; this condition is
known as volume overflow.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has at least one archive
copy that has sections on more than one VSN or if
at least one of the file's data segments has an
archive copy that has sections on more than one
VSN.
-ovfl1
-ovfl2
-ovfl3
-ovfl4 File has an archive copy that has sections on more
than one VSN for the indicated copy number (1-4).
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has an archive copy that
has sections on more than one VSN for the
indicated copy number or if at least one of the
file's data segments has an archive copy that has
sections on more than one VSN for the indicated
copy number.
-partial_on
File has the partial-release attribute set and the
partially retained portion of the file is online.
-path pattern
File name matches shell pattern pattern. The
metacharacters do not treat the slash (/) or the
period (.) specially. For example, the following
line writes an entry for a directory called
./src/misc (if one exists):
sfind . -path './sr*sc'
To ignore a whole directory tree, use the -prune
action rather than checking every file in the
tree. For example, the following command skips
the directory src/emacs for all files and
directories under it and it writes the names of
the other files found:
sfind . -path './src/emacs' -prune -o -print
-perm mode
File's permission bits are exactly mode (octal or
symbolic). Symbolic modes use mode 0 as a point
of departure.
-perm -mode
All of the permission bits mode are set for the
file.
-perm +mode
Any of the permission bits mode are set for the
file.
-project pname
File belongs to project pname. A numeric project
ID is allowed.
-regex pattern
File name matches regular expression pattern.
This is a match on the whole path, not a search.
For example, to match a file named ./fubar3, you
can use the regular expression .*bar. or .*b.*3,
but not b.*r3.
-release_d
File has had the equivalent of having the
release(1) command with its -d option run against
it, and thus has the default release handling.
-release_a
File has had the equivalent of having the
release(1) command with its -a option run against
it, and thus will be released immediately after
being archived.
-release_n
File has had the equivalent of having the
release(1) command with its -n option run against
it, and thus will never be released.
-release_p
File has had the equivalent of having the
release(1) command with its -p option run against
it, and thus will be partially released.
-rmedia File is a removable media file.
-rmin n File's residence was changed n minutes ago.
-rtime n File's residence was changed n*24 hours ago.
-sections n
File has at least one archive copy that has
sections on n VSNs.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has at least one archive
copy that has sections on n VSNs or if at least
one of the file's data segments has an archive
copy number n that has sections on n VSNs.
-sections1 n
-sections2 n
-sections3 n
-sections4 n
File has an archive copy that has sections on n
VSNs for the indicated copy number (1-4).
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
the file's index inode has at least one archive
copy that has sections on n VSNs for the indicated
copy number or if at least one of the file's data
segments has an archive copy number n that has
sections on n VSNs.
-segment n
Data segment or index inode has segment number n.
Index inodes always have segment number 0. Data
segments are numbered sequentially starting with
1.
This test always causes sfind to run as if the
-test_segments option were in effect.
-segment_a
File or directory has had the segment attribute
set.
If the -test_segments option is also in effect,
then this test evaluates to true for index inodes
and data segments in addition to files and
directories that have had the segment attribute
set.
-segment_i
Item is an index inode.
This test always causes sfind to run as if the
-test_segments option were in effect.
-segment_s
Item is a data segment.
This test always causes sfind to run as if the
-test_segments option were in effect.
-segmented
Item is a segmented file.
If used in conjunction with the -test_segments
option, this test evaluates to true for index
inodes and data segments.
-segments n
Segmented file has n data segments.
-setfa_g n
File's stripe group was set to n using the command
setfa -g n. For more information on the setfa -g
command, see the setfa(1) man page.
-setfa_s n
File's stripe width was set to n using the command
setfa -s n. For more information on the setfa -s
command, see the setfa(1) man page.
-size n[unit]
File uses n 512-byte blocks. To specify another
size, use the unit suffix. The possible unit
specifiers are as follows:
unit Meaning
b or c Bytes.
k Kilobytes.
m Megabytes.
g Gigabytes.
t Terabytes.
For example, the following specifications are
equivalent:
-size 3
-size 1536b
The -size test does not count indirect blocks, but
it does count blocks in sparse files that are not
actually allocated.
-ssum_g File has had the equivalent of the ssum(1) command
with its -g option run against it, and thus will
have a checksum value generated and stored for it
when it is archived.
-ssum_u File has had the equivalent of the ssum(1) command
with its -u option run against it, and thus will
have a checksum value verified (used) when it is
staged.
-ssum_v File has a valid checksum value.
For a segmented file, if the -test_segments option
is not in effect, this test evaluates to true if
all of the file's data segments have valid
checksum values. This test does not evaluate a
segmented file's index inode to see if it has a
valid checksum value.
-stage_a File has had the equivalent of the stage(1)
command with its -a option run against it, and
thus will have associative staging behavior.
-stage_d File has had the equivalent of the stage(1)
command with its -d option run against it, and
thus will have the default staging behavior.
-stage_n File has had the equivalent of the stage(1)
command with its -n option run against it, and
thus will not be staged into disk cache for read
references.
-true Always true.
-type c File is of type c. For c, specify one of the
following:
Type c Meaning
b Block (buffered) special.
c Character (unbuffered) special.
d Directory.
p Named pipe (FIFO).
f Regular file.
l Symbolic link.
s Socket.
R Removable media file.
-uid n File's numeric user ID is n.
-used n File was last accessed n days after its status was
last changed.
-user uname
File is owned by user uname (numeric user ID
allowed).
-verify File has the verify attribute set. See the
ssum(1) man page for more information on the
verify attribute.
-vsn pattern
File has an archive copy on a volume with VSN
matching shell pattern pattern for any copy.
-vsn1 pattern
-vsn2 pattern
-vsn3 pattern
-vsn4 pattern
File has an archive copy on a volume with VSN
matching shell pattern pattern for the indicated
copy (1-4).
-xmin n File's data was created n minutes ago.
-xtime n File's data was created n*24 hours ago.
-xtype c The same as -type unless the file is a symbolic
link. For symbolic links, the -xtype test checks
the type of the file that the -type test does not
check. For c values, see the -type test in this
list.
For symbolic links, the following occurs:
o If the -follow option has not been specified,
the test returns true if the file is a link to
a file of type c.
o If the -follow option has been specified, the
test returns true if c is l.
ACTIONS
An expression can contain one or more actions. The
available actions are as follows:
action Result
-exec command ;
Executes the specified command. True if 0 status
is returned. All arguments to the right of the
-exec keyword are assumed to be arguments to
command until an argument consisting of a
semicolon (;) is encountered. The string {} is
replaced by the current file name being processed
everywhere it occurs in the arguments to the
command, not just in arguments where it is alone,
as in some versions of the find(1) command. Both
of these constructions might need to be escaped
with a backslash character (\) or quoted to
protect them from expansion by the shell.
-fprint file
True. Writes the full file name to file file. If
file does not exist when sfind is run, it is
created. If file does exist, it is truncated.
The file names /dev/stdout and /dev/stderr are
handled specially; they refer to the standard
output and standard error output, respectively.
-fprint0 file
True. Similar to the -print0 action, but it
writes to file like -fprint.
-fprintf file format
True. Similar to the -printf action, but it
writes to file, using format, like the -fprint
action. For information on possible format
option, see the -printf format action.
-ok command ;
Executes the specified command, like the -exec
action, but it asks the user first (on the
standard input). If the user response does not
start with y or Y, command is not run, and the
return value is false.
-print True. Writes the full file name, followed by a
newline, to standard output.
-print0 True. Writes the full file name, followed by a
null character, to standard output. This allows
file names that contain newlines to be interpreted
correctly by programs that process the sfind
output.
-printf format
True. Writes format to standard output,
interpreting both backslash (\) escape and percent
character (%) directives. Field widths and
precisions can be specified as with the printf(3C)
C library function. Unlike the -print action, the
-printf action does not add a newline at the end
of the string.
Two lists follow. The escapes are listed first,
and the directives are listed after the escapes.
Esc Result
\a Alarm bell.
\b Backspace.
\c Stops printing from this format immediately.
\f Form feed.
\n Newline.
\r Carriage return.
\t Horizontal tab.
\v Vertical tab.
\\ A literal backslash (\).
A backslash character (\) followed by any other
character is treated as an ordinary character, so
both are written.
The directives begin with a percent (%) character
followed by another character from the following
list. If the % character is followed by a
character that is not from this list, the
directive is discarded, but the other character is
printed. The directives are as follows:
Dir Meaning
%% A literal percent sign.
%a File's last access time in the format
returned by the C ctime(3C) function.
%Ak File's last access time in the format
specified by k, which is either an ampersand
(@) or a directive for the C strftime(3C)
function. The directives specify either the
time or date. The possible values for k
follow. Some of them might not be available
on all systems, due to differences in the
strftime(3C) function between systems.
o An ampersand (@). The ampersand signifies
seconds elapsed since Jan. 1, 1970, 00:00
GMT.
o A time field. The time fields are as
follows:
k Meaning
H The hour in 00, ..., 23 format.
I The hour in 01, ..., 12 format.
k The hour in 0, ..., 23 format.
l The hour in 1, ..., 12 format.
M The minute in 00, ..., 59 format.
p Specifies whether the locale's time
is AM or PM.
r The time in a 12-hour format. This
results in a hh:mm:ss [A | P]M
format.
S The second in a 00, ..., 61 format.
T The time in a 24-hour format. This
results in a hh:mm:ss format.
X The locale's time representation in
H:M:S.
Z The time zone (for example, EDT) or
nothing (if no time zone is
determinable).
o A date field. The date fields are as
follows:
k Meaning
a The locale's abbreviated weekday name
in Sun, ..., Sat format.
A The locale's full weekday name, in
Sunday, ..., Saturday format. This
is of variable length.
b, h The locale's abbreviated month name
in Jan, ..., Dec format.
B The locale's full-month name in
January, ..., December format. This
is of variable length.
c The locale's date and time in the
following example format: Sat Nov 04
12:02:33 EST 1989.
d The day of month in 01, ..., 31
format.
D The date in mm/dd/yy format.
j The day of year in 001, ..., 366
format.
m The month in 01, ..., 12 format.
U The number of the week in the year,
with Sunday considered to be the
first day of week, in 00, ..., 53
format.
w The day of week in 0, ..., 6 format.
W The number of the week in the year,
with Monday considered to be the
first day of week, in 00, ..., 53
format.
x The locale's date representation in
mm/dd/yy format.
y The last two digits of year in 00,
..., 99 format.
Y The year in the following example
format: 2002.
Dir Meaning
%b File's size in 512-byte blocks (rounded up).
%B File's start time for the WORM retention
period in the format returned by the C
ctime(3C) function.
A dash (-) is written if the item is not a
WORM, or does not reside in a QFS or SAM-QFS
file system.
%c File's last status change time in the format
returned by the C ctime(3C) function.
%Ck File's last status change time in the format
specified by k, which is the same as for the
%Ak directive. For more information, see
the %Ak directive previously in this list.
%d File's depth in the directory tree. A zero
(0) means that the file is a command line
argument.
%e File's creation time in the format returned
by the C ctime(3C) function.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%Ek File's creation time in the format specified
by k, which is the same as for %Ak. For
more information, see the %Ak directive
previously in this list.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%f File's name with any leading directories
removed.
%F Type of file system the file is on. This
value can be used for the -fstype test.
%g File's group name. This is the numeric
group ID if the group has no name.
%G File's numeric group ID.
%h Leading directories of file's name.
%H Command line argument under which file was
found.
%i File's inode number in decimal.
%j File's last attribute change time in the
format returned by the C ctime(3C) function.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%Jk File's last attribute change time in the
format specified by k, which is the same as
for %Ak. For more information, see the %Ak
directive previously in this list.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%k File's size in 1K blocks rounded up.
%K Segment number of the data segment or the
index inode.
Index inodes always have segment number 0.
Data segments are numbered sequentially
starting with 1.
A dash (-) is written if the item is not an
index inode and not a data segment.
%l Object of symbolic link. Empty string if
file is not a symbolic link.
%m File's permission bits in octal.
%n Number of hard links to file.
%p File's name.
%P File's name with the name of the command
line argument under which it was found
removed.
%Q Number of data segments that comprise the
segmented file.
A dash (-) is written if the item is not a
segmented file.
%r File's stripe group number as it was set
using the setfa -g command. A dash (-) is
written if the file's stripe group number
was not set using setfa -g or if the file
does not reside in a Sun QFS file system.
For more information on the setfa -g
command, see the setfa(1) man page.
%R The WORM retention period for a WORM capable
directory or WORM file in YYYYy, DDd, HHh,
MMm format. If the retention period is 0,
"permanent" is written.
A dash (-) is written if the item is not a
WORM, or does not reside in a QFS or SAM-QFS
file system.
%s File's size in bytes.
%t File's last modification time in the format
returned by the C ctime(3C) function.
%Tk File's last modification time in the format
specified by k, which is the same as for
%Ak. For more information, see the %Ak
directive previously in this list.
%u File's user name, or numeric user ID if the
user has no name.
%U File's numeric user ID.
%w File's stripe width as it was set using the
setfa -s command. A dash (-) is written if
the file's stripe width was not set using
setfa -s or if the file does not reside in a
Sun QFS or SAM-QFS file system. For more
information on the setfa -s command, see the
setfa(1) man page.
%W The retention state of the item. If the WORM
is capable for a directory, worm-capable is
written, or active or over is written for a
file.
A dash (-) is written if the item is not a
WORM, or does not reside in a QFS or SAM-QFS
file system.
%X File's date the WORM retention period will
expire in the format of %c of the C
strftime(3C) function. If the retention
period is 0 (never expire), "*" is written.
A dash (-) is written if the item is not a
WORM, or does not reside in a QFS or SAM-QFS
file system.
%y File's residence time in the format returned
by the C ctime(3C) function.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%Yk File's residence time in the format
specified by k, which is the same as for
%Ak. For more information, see the %Ak
directive previously in this list.
A dash (-) is written if the item does not
reside in a QFS or SAM-QFS file system.
%Z Segment length setting in megabytes. A dash
(-) is written if the item does not have the
segment attribute set.
-prune
Always yields true. Does not examine any directories
or files in the directory structure below the pattern
just matched. If -depth is specified, -prune has no
effect.
-ls True. Writes information on the current file to
standard output. The information written is in ls(1)
command format with -dils options. For more
information on the ls(1) command, see the ls(1) man
page.
By default, the block counts in the output are in 1K
blocks. If the POSIXLY_CORRECT environment variable is
set, block counts are in 512-byte blocks.
OPERATORS
An expression can contain one or more operators. The
following operators are listed in order of decreasing
precedence:
operators Action
( expr ) Forces precedence.
! expr True if expr is false.
-not expr Same as ! expr.
expr1 expr2 And (implied). expr2 is not evaluated if
expr1 is false.
expr1 -a expr2 Same as expr1 expr2.
expr1 -and expr2
Same as expr1 expr2.
expr1 -o expr2 Or. expr2 is not evaluated if expr1 is true.
expr1 -or expr2
Same as expr1 -o expr2.
expr1 , expr2 List. Both expr1 and expr2 are always
evaluated. The value of expr1 is discarded.
The value of the list is the value of expr2.
EXAMPLES
Example 1. The following command finds all files in the
/sam4 directory that are not archived:
sfind /sam4 ! -archived
Example 2. The following command finds all regular files in
the current directory that are archived, online, and are
nonzero in length:
sfind . -archived -online ! -empty -type f -print
Example 3. The following command finds all regular files in
the current directory that have archive copies on VSNs
matching the shell pattern TP??3?. Note that shell
wildcard characters must be escaped or quoted.
sfind . -vsn "TP??3?" -type f
Alternatively, the following command could be used:
sfind . -vsn TP\?\?3\? -type f
Example 4. The following command prints the modification
time of all files in /sam6:
sfind /sam6 -printf "file %f mod time %Aa %Ab %Ad %AY %AT\n"
file file7 mod time Fri Nov 12 1999 18:44:27
Example 5. The following command finds all files on /sam6
that have at least one archive copy that has sections on
more than one VSN, i.e. all files on /sam6 that have at
least one archive copy that overflows VSNs.
sfind /sam6 -ovfl -print
Example 6. The following command finds all files on /sam6
that have at least one archive copy that has sections on
more than one VSN, but fewer than five VSNs.
sfind /sam6 -sections +1 -sections -5 -print
Example 7. The following command finds all files in /sam6
whose stripe group was set to a value greater than 3 but
less than 8 and whose stripe width was set to a value
greater than 1, but less than 5. It prints the file's path,
stripe group number and stripe width value:
sfind /sam6 -type f -setfa_g +3 -setfa_g -8 -setfa_s +1 -setfa_s -5 \
-printf "Path: %p, g%r, s%w\n"
Path: /sam6/seismic_scan/030610/1200/scn.dat, g4, s2
Example 8. The following command finds all files in /sam6
which have disk archive copies on disk volume "diskv1" in
file "d1/d4/d201/f107".
sfind /sam6 -vsn diskv1 -archpos d1/d4/d201/f107
EXIT STATUS
The sfind(1) command exits with status of 0 if all files are
processed successfully. It exits with a status greater than
0 if errors occur.
SEE ALSO
archive(1), find(1), release(1), setfa(1), ssum(1),
stage(1).
rearch(1M).
printf(3C).