Scroll to navigation

IDENT(1) General Commands Manual IDENT(1)


ident - identify RCS keyword strings in files


ident [ -q ] [ -V ] [ file ... ]


ident searches for all instances of the pattern $keyword: text $ in the named files or, if no files are named, the standard input.

These patterns are normally inserted automatically by the RCS command co(1), but can also be inserted manually. The option -q suppresses the warning given if there are no patterns in a file. The option -V prints RCS's version number.

ident works on text files as well as object files and dumps. For example, if the C program in f.c contains

#include <stdio.h>
static char const rcsid[] =
"$Id: f.c,v 5.4 1993/11/09 17:40:15 eggert Exp $";
int main() { return printf("%s\n", rcsid) == EOF; }

and f.c is compiled into f.o, then the command

ident f.c f.o

will output


$Id: f.c,v 5.4 1993/11/09 17:40:15 eggert Exp $ f.o:
$Id: f.c,v 5.4 1993/11/09 17:40:15 eggert Exp $

If a C program defines a string like rcsid above but does not use it, lint(1) may complain, and some C compilers will optimize away the string. The most reliable solution is to have the program use the rcsid string, as shown in the example above.

ident finds all instances of the $keyword: text $ pattern, even if keyword is not actually an RCS-supported keyword. This gives you information about nonstandard keywords like $XConsortium$.

The pattern normally requires a colon and a space immediately after the keyword and a space immediately before the terminating $, but for Subversion 1.2 (and later) compatibility, ident will also recognize the pattern $keyword:: text $ (i.e., two colons and a space) and the pattern $keyword:: text #$ (likewise, with a hash before the terminating $). These are the fixed-width keyword syntax. To summarize, the three recognized patterns are:

$keyword: text $
$keyword:: text $
$keyword:: text #$


Here is the list of keywords currently maintained by co(1). All times are given in Coordinated Universal Time (UTC, sometimes called GMT) by default, but if the files were checked out with co's -zzone option, times are given with a numeric time zone indication appended.

The login name of the user who checked in the revision.
The date and time the revision was checked in.
A standard header containing the full RCS file name, the revision number, the date and time, the author, the state, and the locker (if locked).
Same as $Header$, except that the RCS file name is without directory components.
The login name of the user who locked the revision (empty if not locked).
The log message supplied during checkin. For ident's purposes, this is equivalent to $RCSfile$.
The symbolic name used to check out the revision, if any.
The RCS file name without directory components.
The revision number assigned to the revision.
The full RCS file name.
The state assigned to the revision with the -s option of rcs(1) or ci(1).

co(1) represents the following characters in keyword values by escape sequences to keep keyword strings well-formed.

char	escape sequence
tab	\t
newline	\n
space	\040
$	\044
\	\\


Author: Walter F. Tichy.
Manual Page Revision: 5.10.1; Release Date: 2022-02-19.
Copyright © 2010-2022 Thien-Thi Nguyen.
Copyright © 1990, 1992, 1993 Paul Eggert.
Copyright © 1982, 1988, 1989 Walter F. Tichy.


ci(1), co(1), rcs(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5).

Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.

The full documentation for RCS is maintained as a Texinfo manual. If the info(1) and RCS programs are properly installed at your site, the command

info rcs

should give you access to the complete manual. Additionally, the RCS homepage:

has news and links to the latest release, development site, etc.

2022-02-19 GNU RCS 5.10.1