vfind(1)
β¨ vfind(1) β¨
okay bestie, so this is vfind from the ShapeTools crew, section 1 of the manual, and it's literally the tool for hunting down attributed software objects (we call 'em ASOs, iykyk) π¦
πΈ NAME πΈ
vfind β find attributed software objects (ASOs) π
π SYNOPSIS π
vfind [ options ] pathname-list expression
π DESCRIPTION π
So here's the vibe: vfind recursively descends the directory hierarchy for every single pathname in the pathname-list, on the hunt for asos that match a boolean expression written out of the primaries listed down below. No cap, it's a whole scavenger hunt. π
Quick grammar note before we go any further, because it matters: in all the descriptions that follow, the argument n is a decimal integer, and it plays three ways:
+nmeans more than n-nmeans less than nn(just plain, no sign) means exactly n
That's it, that's the whole trick. periodt. π«
β¨ OPTIONS β¨
-versionβ prints version info about thevfindprogram itself. and that's it, that's the whole show β no other action you gave will be performed, bestie, it's version-and-dip. π-?,-helpβ drops brief instructions on how to actually usevfind. tutorial era π«Ά-cacheβ match a boolean expression also for asos chillin' in the derived object cache.-cutnesting depth β tellsvfindto descend the filesystem hierarchy down to nesting depthnesting depth. don't go too deep babes π³οΈ-forceβ normie behaviour is thatvfindignores saved asos iff an AtFS directory is a symbolic link. give it-forceand it takes symbolic AtFS directories into consideration too. forceful. iconic. π-hitsβ makesvfindreturn the number of expressions that yielded true during evaluation. counting the wins π-xdevβ stopsvfindfrom traversing down into a file system that's different from the one where the current argument pathname resides. stay in your lane, literally. π§
π PRIMARIES π
-atime nβ true if the aso has been accessed in n days.-ctime nβ true if the status of the aso has been changed in n days.-mtime nβ true if the aso has been modified in n days.-stime nβ true if the aso has been saved in n days.-ltime nβ true if the aso has been locked in n days.-exec commandβ true if the executed command returns a zero value as its exit status. the end of the command must be punctuated by an escaped semicolon (don't forget it!!). a command argument{}gets replaced by the system name of the current aso. β¨-exit nβ terminatesvfindand returns n as the exit status. bye bestie π-vlβ always true; prints the current aso together with its associated statistics. that means protection mode, AtFS version state, user, host, size in bytes, modification time respectively saving time. the format is identical to that ofvl -l. she's giving data dump π-name nameβ true if the name argument matches the filename component of the current aso. normal Shell argument syntax may be used if escaped.-perm onumβ true if the aso permission flags exactly match the octal number onum. if onum is prefixed by a minus sign, more flag bits (017777) become significant and the flags get compared like this:(flags&onum)==onum.-printβ always true; prints the relative path of the current aso.-pruneβ always true; has the side effect of pruning the tree, iff the current file is a directory. βοΈ-SinceName nameβ true if the current aso is older than the corresponding aso having the symbolic name name.-symbolic nameβ true if the current aso has the symbolic name name. peepvadm(1)orsave(1)for how to attach a symbolic name to an aso, k?-state stateβ true if the state of the current aso matches state, where state is one ofbusy,save,proposed,published,accessed, orfrozen.-type cβ true if the type of the current aso isc, wherecisb,c,d,f,l, orsβ that's block special file, character special file, directory, plain file, symbolic link, or socket, in that order. π§-uda udaβ true if the current aso has an user defined attribute matching uda, where uda is of the formname[=value].-user userβ true if the current aso belongs to user, where user is a login name optionally followed by a domainname (e.g.uli@cs.tu-berlin.de).-lastβ true if the current aso is the last version of the development line.-firstβ true if the current aso is the first version of the development line.-lockedβ true if the current aso is locked. π-locker userβ true if the current aso is locked by user, where user is a login name optionally followed by a domainname.-eq vnumβ true if the version number of the current aso matches version number vnum, where vnum isgeneration.revision.-lt vnumβ true if the version number of the current aso is less than the version number vnum.-le vnumβ true if the version number of the current aso is less equal than the version number vnum.-gt vnumβ true if the version number of the current aso is greater than the version number vnum.-ge vnumβ true if the version number of the current aso is greater equal than the version number vnum.-newer fileβ true if the current aso is more recently than the argument file, which can itself be an aso (e.g.vfind.c[1.6]). π°οΈ-size nβ true if the file is n blocks long (512 bytes per block). math queen π
π combining them π
You can mix and match these primaries with the operators:
(and)for grouping!for negation-afor concatenation (you may omit it, she's chill like that)-ofor alternation of primaries
β οΈ bestie, listen: parentheses and the exclamation mark are special to the Shell and must be escaped. do not skip this step, the shell will eat them and you'll be sad π
Also, one more real one: vfind does not descend AtFS directories, so the AtFS archives are never selected. noted. π
π EXAMPLES π
Wanna find all asos whose state is busy and that have the symbolic name "foobar"? say less:
vfind / -state busy -symbolic foobar -print
Wanna find the latest proposed version of foo.c in the current directory? obsessed:
vfind -prune 0 . -name foo.c -state proposed -last -print
π¦ SEE ALSO π¦
π INCOMPATIBILITIES π
ngl, the following find(1) primaries are not recognized or implemented here:
-link, -nouser, -group, -nogroup, -inum, and -ok
that's the list, don't come for me π
π AUTHOR π
Uli.Pralle@cs.tu-berlin.de
Steve Emerson (steve@unidata.ucar.edu) contributed the primary 'SinceName'. what a king π
and that's the whole page bestie!! this one's from vfind-3.3, dated Tue Jun 29 16:31:49 1993 β vintage, iconic, a true relic of the ShapeTools era πβ¨ go forth and find your asos, love u, bye!! ππ
π¦ where this page comes from
- debian bookworm: atfs 1.4pl6-15+b1
- ubuntu jammy: atfs 1.4pl6-15
- ubuntu noble: atfs 1.4pl6-16.1build1
- ubuntu resolute: atfs 1.4pl6-17
- ubuntu stonking: atfs 1.4pl6-17
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms