---
name: "vfind"
section: "1"
platform: "linux"
package: "atfs"
version: "1.4pl6-15+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/vfind"
---

# vfind(1)

find attributed software objects (ASOs)

## NAME

vfind - find attributed software objects (ASOs)

## SYNOPSIS

**vfind** \[ *options* \] *pathname-list expression*

## DESCRIPTION

**Vfind** recursively descends the directory hierarchy for each pathname in the pathname-list seeking asos that match a boolean expression written in the primaries given below. In the description, the argument *n* is used as a decimal integer where *+n* means more than *n*, *-n* means less than *n* and *n* means exactly *n*.

## OPTIONS

- **-version**

  print version information about the **vfind** program itself. No other action given will be performed.

- **-?, -help**

  print brief instructions about using **vfind**.

- **-cache**

  match a boolean expression also for aso residing in the *derived* *object cache*.

- **-cut** *nesting depth*

  causes **vfind** to descend the filesystem hierarchy down to nesting depth *nesting depth*.

- **-force**

  **Vfind** normally ignores saved asos iff a AtFS directory is a symbolic link. If the **-force** option is given **vfind** takes also symbolic AtFS directories into consideration.

- **-hits**

  causes **vfind** to return the number of expressions yielding true during evaluation.

- **-xdev**

  causes **vfind** not to traverse down into a file system different from the one on which current argument pathname resides.

## PRIMARIES

- **-atime** n

  True if the aso has been accessed in *n* days.

- **-ctime** n

  True if 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 exit status. The end of the command must be punctated by an ecscaped semicolon. A command argument \`{}' is replaced by the system name of the current aso.

- **-exit** n

  Terminates vfind and returns n as the exit status.

- **-vl**

  Always true; causes the current aso to be printed together with its associated statistics. This includes protection mode, *AtFS* version state, user, host, size in bytes, modification time respectively saving time. The format is identical to that of \`\`vl -l''.

- **-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 numer *onum*. If *onum* is prefixed by a minus sign, more flag bits (017777) become significant and the flags are compared: *(flags&onum)==onum*.

- **-print**

  Always true; causes the relative path of the current aso to be printed.

- **-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*. See **[vadm(1)](/vadm/1.md)** or **[save(1)](/save/1.md)** on how to attach a symbolic name to an aso.

- **-state** state

  True if the state of the current aso matches state *state*, where *state* is **busy**, **save**, **proposed**, **published**, **accessed**, or **frozen**.

- **-type** c

  True if the type of the current aso is *c*, where c is **b**, **c**, **d**, **f**, **l**, or **s** for block special file, character special file, directory, plain file, symbolic link, or socket.

- **-uda** uda

  True if the current **aso** has an user defined attribute matching uda *uda*, where *uda* is of the form *name\[=value\]*.

- **-user** user

  True if the current aso belongs to user *user*, where *user* is a login name optinally 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 *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* is *generation.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 be an aso (e.g. vfind.c\[1.6\]).

- **-size** n

  True if the file is n blocks long (512 bytes per block).

The primaries may be combined using the operators **(**, **)** for grouping, **!** for negation, **-a** for concatenation (may be omitted) and **-o** for alternation of primaries. Parentheses and the exclamation mark are special to the Shell and must be escaped.

**vfind** does not descent AtFS directories, so the AtFS archives are never selected.

## EXAMPLES

To find all asos whose state is busy and that have the symbolic name "foobar":

-

  vfind / -state busy -symbolic foobar -print

-

  To find the latest proposed version of foo.c in the current directory:

-

  vfind -prune 0 . -name foo.c -state proposed -last -print

-

  ## SEE ALSO

[vl(1)](/vl/1.md), [find(1)](/find/1.md)

## INCOMPATIBILITIES

The following **[find(1)](/find/1.md)** primaries are not recognized or implemented: -link, -nouser, -group, -nogroup, -inum, and -ok.

## AUTHOR

Uli.Pralle@cs.tu-berlin.de\
 Steve Emerson (steve@unidata.ucar.edu) contributed the primary 'SinceName'.
