GTKFIND(1)GTKFIND(1)NAMEgtkfind - a graphical file finding program
SYNOPSISgtkfind [-vanish] [-help] [-version]
DESCRIPTIONgtkfind is a graphical find program written using the GTK+ toolkit.
Operation should be straightforward. By default the program will
search the / directory and match all files and directories. You can
narrow the match by using shell wildcards and curly braces. There are
also other file attributes you can match against, like owner and type.
TUTORIAL
First you must choose a directory in which to search. You can just
type the directory name, or you can use the Choose Directory button.
This button brings up a file browser which you can use to select a
directory. You can also select whether or not you want to search the
subdirectories of the directory you have chosen. You may use the ~
(tilde) character to specify a user's directory, as you would in the
shell. For example, ~ will search your home directory, and ~/src will
search the directory src under your home directory. Similarly, ~mattg
will search the home directory of user mattg.
Next, you must decide which files you want to match. Each "card" has
settings you can use to select a file. Keep in mind that you don't
have to fill in all the cards. The default is to match everything.
Filename
On this card, you can enter the name of the file you want to match. If
the simple substring button is selected, the find will match any file‐
name containing the string you enter. For example, the string .txt
will match the files foo.txt and bar.txt, but not the file baz.text.
If the wildcard pattern button is selected, you can use the following
wildcard characters just like in the shell:
* - this character will match any or no characters. For example,
the pattern *.txt will match files named foo.txt and .txt, but not
foo.text.
? - this character will match any one character. For example,
wibble.? will match files named wibble.c and wibble.s, but not wibble.
or foo.c.
[..] - square braces can be used to show a set of characters, any
one of which will match. For example, *.[ch] will match foo.c and
foo.h. A - inside the braces can be used to match a range, for example
[1-5] will match the characters 1,2,3,4,5. You can match an [ or ] by
putting them last or first, eg [[] will match [.
{..} - curly braces will match comma separated strings. For exam‐
ple, the pattern {foo,bar}.c will match foo.c and bar.c.
(..) - parentheses will store portions of the match in registers.
A gtkfind register is a place where a string is stored. There are 10
registers, and by default the complete name of the file that is matched
is stored in register 0. The nine other registers are filled left to
right. So the pattern (*)-backup.(??) which matches the file named
TUES-backup.18, stores the string "TUES-backup.18" in register 0, the
string "TUES" in register 1, and the string "18" in register 2. You
can insert these register values into a shell command which you can run
when you match a filename. This is explained under Shell Commands
below.
atime
This card allows you to match a file's access time. This is the last
time that the file was read or executed. You can manipulate the coun‐
ters to set the time and date. Hours are given in military or 24-hour
time. You can choose whether you want to match files with access times
earlier than, equal to, or later than the time you have entered. This
is not an exclusive or; you can match files that have atimes earlier
than or equal to the time you have specified.
ctime
This is exactly the same as the atime card above, except that it
matches against the last time the file's inode was changed. This hap‐
pens whenever a file is created, when its atime or mtime is changed,
when its mode is changed, and other times too.
mtime
Ditto, except that this matches against mtime, which is the last time a
file was modified, ie written to. If you are curious about these
times, you can use the stat(1) program to find out the atime, mtime,
and ctime of files.
Mode
This card allows you to match against a file's mode or permissions.
You can match against multiple permissions.
Type
This card allows you to match against a file's type. This includes
whether the file is a directory, a regular file, or any of the special
files (symbolic links, devices, etc.). You can also match against
files that have the setuid, setgid, or sticky bits set.
Owner
Here you can match against a file's owner or group. You can choose to
match against the login name or group name (such as mattg), or against
the User ID or Group ID numbers (uid or gid). You can also match files
without a known user or group by selecting the Match unknown users or
Match unknown groups toggle buttons.
Contents
This card lets you enter a simple substring or wildcard pattern to
match against the contents of files. For example, to match all files
containing the string linux you would either select the simple sub‐
string option and enter linux , or select the wildcard pattern option
and enter the pattern *linux*.
Shell Commands
When you are done selecting the criteria to match a file against, you
get to choose what you want to do with the files that meet those crite‐
ria. The default action is to display the filenames in a window. You
can also choose to print the filenames to the standard output, or not
to print anything at all.
If the Print extra data radio button is selected, data about matched
files is printed in a format similar to the format of ls -l. The
default is to simply print the filenames, one per line.
One thing you might want to do now is run a shell command on each file
as it is matched. To do this, select the Run a shell command box and
enter the text of your command in the text space provided. You can
insert a register by using the characters \register-number. So for
example, given the pattern (*).txt you can use the command line mv \0
\1.old to move the files foo.txt and bar.txt to foo.old and bar.old,
respectively.
Finding Files
When you have selected the criteria you want to match against and
decided whether or not you want to run a shell command against the
files you match, you can click the Find button to run the search.
Depending on whether you selected Print to stdout or Print to window
the results will be printed to the standard output of gtkfind or will
be displayed in a window. If the Always print filename button is
selected, gtkfind will print the name of each file that matches its
criteria. The output of any shell commands run on a file will appear
beneath the filename. This is often helpful when running shell com‐
mands.
While the search is running, a Stop button will appear in place of the
Find button. Clicking this button will stop the search.
The Quit button quits gtkfind. The Clear button clears all search cri‐
teria, but does not change the Shell command or Search directory set‐
tings. The Help button opens an xterm(1) showing this manual page, if
this manual page is installed on your system. The Save button will
save your search as a shell script using find(1). You can then run the
search from the prompt. Note that if you want to run additional shell
commands on the files you find, you will have to add them to the file
manually (only the search is saved). Note also that if you do not have
the GNU utilities these shell scripts may not work. You can get the
GNU tools from ftp.gnu.org and many other sites.
OPTIONS-vanish
Exit after the first run. By default, the program sticks around
and can be used multiple times.
-help Print a helpful message to standard output and exit.
-version
Print the program version to standard output and exit.
BUGS
The Save command only works reliably for very simple searches. find(1)
has trouble with complex conditionals.
SEE ALSOfind(1), file(1), grep(1), mktmp(1), stat(1), touch(1)COPYLEFTgtkfind is copyright 1999 by Matthew Grossman <mattg@oz.net> under the
terms of the GNU GPL. See the file COPYING in the source distribution
for details.
MAINTAINER
mattg@oz.net
mattg@oz.net gtkfindGTKFIND(1)