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