Uses a pattern, query, or expression to search for objects
Product | Command Type |
|---|---|
ClearCase | cleartool subcommand |
ClearCase LT | cleartool subcommand |
Attache | command |
Platform |
|---|
UNIX |
Windows |
Find objects visible in the directory structure seen in the current view:
Find all objects in the VOB:
Find objects throughout all mounted VOBs:
The find command starts with a certain set of objects, selects a subset of the objects, and then performs an action on the subset. The selected objects can be elements, branches, versions, or VOB symbolic links. The action can be to list the objects, or to execute a command on each object, either conditionally or unconditionally.
Typically, you start with all objects in a directory tree as seen in your view. You can also start with all objects in one or more VOBs, regardless of their visibility in a particular view.
NOTE: The find command is similar to the UNIX find(1) command. Only a limited set of the standard find options are supported; the way that commands are invoked on selected objects (-exec and -ok options) differs from find(1).
SPECIFYING THE STARTING SET OF OBJECTS. Default: None. You must specify one of the following:
One or more elements, using pname arguments
One or more VOBs, using the -all option
All mounted VOBs, using the -avobs option
NOTE: Processing all of a VOB's elements using -all or -avobs is an order of magnitude faster than going through its entire directory tree by specifying the VOB's root directory as a pname argument. With these options, the order in which elements are processed and/or reported is very different from directory-tree order.
If the CLEARCASE_AVOBS EV is set to a colon-separated list of VOB-tags (in UNIX; in Windows, list items must be separated by semicolons), this set of VOBs is used instead. In Attache, this environment variable must be set in the helper process.
CONSIDERING OBJECTS THAT ARE NOT CURRENTLY VISIBLE. Default: All elements in the VOB are included, whether or not they are visible in the view.
SELECTING ELEMENTS USING STANDARD CRITERIA. The following options use the specified criteria to select subsets of objects.
USE OF EXTENDED PATHNAMES. Default: find submits the objects it selects to the specified action using extended pathnames, such as foo.c@@ (element), foo.c@@/main (branch), or foo.c@@/main/5 (version).
SELECTING ELEMENTS USING QUERIES. The options in this section select a subset of objects using the VOB query language, which is described in the query_language reference page. You can use these options in any combination. They are always applied in this order, successively refining the set of selected objects: first -element, then -branch, then -version. The result of applying one or more of these options is a set of objects at the finest level of granularity level: all versions if you used -version, or else all branches if you used -branch, or else all elements if you used -element. If you use none of these options, the set includes elements and VOB symbolic links. There is no way to use a query to select a set of VOB symbolic links.
SPECIFYING THE ACTION. Default: None. You must specify an action to be performed on the selected objects. You can specify a sequence of several actions, using two -exec options, or -exec followed by -print, and so on. In Attache, you cannot specify -get with any of the other actions.
When using the -exec or -ok command invocation, do not use braces ({ }) to indicate a selected object, or use a quoted or escaped semicolon to terminate the command. Instead, enter the entire command as a quoted string; use one or more of these environment variables to reference the selected object:
The UNIX examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.
The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.
In cleartool single-command mode, cmd-context represents the UNIX shell or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt. In Attache, cmd-context represents the workspace prompt.
NOTE: In the UNIX examples that follow, arguments and output that show multicomponent VOB tags are not applicable to ClearCase LT, which recognizes only single-component VOB tags. In this manual, a multicomponent VOB tag is by convention a two-component VOB tag of the form /vobs/vob-tag-leaf-for example, /vobs/src. A single-component VOB tag consists of a leaf only-for example, /src. In all other respects, the examples are valid for ClearCase LT.
List all file elements in and below the current working directory.
cmd-context find . -type f -print
./Makefile@@
./hello.c@@
./hello.h@@
./msg.c@@
./util.c@@
This listing includes the extended naming symbol. The -nxname option suppresses this symbol.
List all objects owned by user smg throughout all mounted VOBs.
cmd-context find -avobs -user smg -print
\work_vob\hw\util.c@@
\work_vob\hw\hello.c@@
\smg_tmp\bin@@\main\6\misc\main\3\text@@
\smg_tmp\bin@@\main\6\misc\main\3\Makefile@@
\smg_tmp\bin@@\main\6\misc\main\3\test.c@@
...
List the version labeled REL1 for each element in or below the current working directory.
cmd-context find . -version "lbtype(REL1)" -print
.@@/main/1
./Makefile@@/main/1
./hello.c@@/main/2
Excluding any elements that do not have both labels, list all versions in the current VOB labeled either REL1 or REL2 but not both.
cmd-context find -all -element '{lbtype_sub(REL1) && lbtype_sub(REL2)}' ^
-version '{(lbtype(REL1) && ! lbtype(REL2)) || ^
(lbtype(REL2) && !lbtype(REL1))}' -print
\dev\testfile.txt@@\main\43
\dev\testfile.txt@@\main\68
\dev\util.c@@\main\50
\dev\util.c@@\main\58
...
(ClearCase and ClearCase LT) List each header file (*.h) for which some version is labeled REL2 or REL3.
cmd-context find . -name '*.h' -element 'lbtype_sub(REL2) \
|| lbtype_sub(REL3)' -print
./hello.h@@
(Attache) Download to your workspace each header file (*.h) for which some version is labeled REL2 or REL3. Note that the wildcard pattern *.h must be enclosed in quotes so that it is not expanded.
cmd-context find . -name '*.h' -element 'lbtype_sub(REL2) || lbtype_sub(REL3)' -get
(Attache) Download to your workspace each source file (*.c) created since yesterday. The set of files brought across can easily be restricted further.
cmd-context find . -name '*.c' -avobs -version '{created_since(yesterday)}' -get
List all versions that have a QAed attribute with the string value "Yes".
cmd-context find . -version 'QAed == "YES"' -print
.\Makefile@@\main\2
.\hello.c@@\main\4
.\hello.h@@\main\1
.\util.c@@\main\2
.\util.c@@\main\rel2_bugfix\1
List the standard name of each element that has (or contains a branch or version that has) a BugNum attribute with the value 189.
cmd-context find . -nxname -element 'attr_sub(BugNum,==,189)' -print
./hello.c
For each element that has had a merge from the rel2_bugfix branch to the main branch, archive the current version of the element to your home directory.
cmd-context find . -element merge(\main\rel2_bugfix,\main) ^
-exec 'cmd /c copy %CLEARCASE_PN% %HOME%'
For each element that has had a merge from the rel2_bugfix branch to the main branch, archive the current version of the element to a tar(1) file in your home directory (in Attache, on the helper host).
cmd-context find . -element "merge(/main/rel2_bugfix, /main)" \
-exec 'echo $CLEARCASE_PN >> /tmp/filelist'
% tar -cvf $HOME/rel2bugmerge.tar \Qcat /tmp/filelist\Q
% rm /tmp/filelist
cmd-context find . -element merge(/main/rel2_bugfix,/main) \
-exec 'cmd /c copy $CLEARCASE_PN $HOME'
If any element's most recent version on the main branch is missing label REL3, label it.
cmd-context find . -version 'version(\main\LATEST) && ! lbtype(REL3)' ^
-exec 'cleartool mklabel -replace REL3 %CLEARCASE_XPN%'
Attach a Testing attribute with string value "Done" to all versions labeled REL2. Note that the double-quote characters that surround the string value must themselves be escaped or quoted:
cmd-context find . -ver 'lbtype(REL2)' \
-exec 'cleartool mkattr Testing \"Done\" $CLEARCASE_XPN'
cmd-context find .-ver lbtype(REL2) -exec 'cleartool mkattr Testing "Done" $CLEARCASE_XPN'
Conditionally delete all branches of type experiment.
cmd-context find . -branch brtype(experiment) ^
-ok 'cleartool rmbranch -force %CLEARCASE_XPN%'
cmd-context find . -branch brtype(experiment) -ok 'cleartool rmbranch -force %CLEARCASE_XPN%'
Change all elements currently using storage pool my_cpool to use pool cdft instead.
cmd-context find . -all -element 'pool(my_cpool)' \
-exec 'cleartool chpool cdft $CLEARCASE_PN'
cmd-context find . -all -element pool(my_cpool) -exec 'cleartool chpool cdft $CLEARCASE_PN'
Obsolete elements that are no longer visible.
cmd-context find . -all -nvisible -exec 'cleartool lock -obsolete %CLEARCASE_PN%'
List merges (recorded by hyperlinks of type Merge) involving versions located at the ends of branches named gopher.
cmd-context find . -version 'version(.../gopher/LATEST)' -print \
-exec 'cleartool describe -short -ahlink Merge $CLEARCASE_XPN'
.@@/main/gopher/1
-> /vob1/proj/src@@/main/146
./base.h@@/main/gopher/1
-> /vob1/proj/src/base.h@@/main/38
./main.c@@/main/gopher/1
-> /vob1/proj/src/main.c@@/main/42
cmd-context find . -version version(...\gopher\LATEST) -print -exec 'cleartool
describe -short -ahlink Merge $CLEARCASE_XPN'
.@@\main\gopher\1
-> \vob1\proj\src@@\main\146
.\base.h@@\main\gopher\1
-> \vob1\proj\src\base.h@@\main\38
.\main.c@@\main\gopher\1
-> \vob1\proj\src\main.c@@\main\42
In the current directory and its subdirectories, list element versions that are on the branch main_dev and that were created in May of this year and that are not the LATEST versions.
cmd-context find . -version "{brtype(main_dev) && created_since(30-Apr) &&
(! created_since(31-May)) && (! version(\main\main_dev\LATEST))}" -print
describe, ls, query_language, wildcards, wildcards_ccase
|
Feedback on the documentation in this site? We welcome any comments!
Copyright © 2001 by Rational Software Corporation. All rights reserved. |